# 视频图形子系统<a name="ZH-CN_TOPIC_0000002441698461"></a>






## 概述<a name="ZH-CN_TOPIC_0000002408099302"></a>

VGS是视频图形子系统，全称为Video Graphics Sub-System。支持对一幅输入图像进行处理，如进行缩放、像素格式转换、视频存储格式转换、压缩/解压、Cover、OSD、Mosaic、画线、旋转、亮度和统计、Corner\_rect、拼接等处理。

## 功能描述<a name="ZH-CN_TOPIC_0000002408099290"></a>



### 基本概念<a name="ZH-CN_TOPIC_0000002441698469"></a>

-   job

    VGS管理task的结构，一个job里可以包含多个task，VGS保证task按照添加到job的顺序执行，并且保证一个job里的所有task一次性提交硬件执行。用户可以在加载VGS ko时设置模块参数（g\_max\_vgs\_job）来设置VGS支持的最大job数。job数取值范围为\[20，400\]，默认为128。

-   task

    对一幅图像完成具体的一个或多个操作，比如打OSD、缩放或像素格式转换等。用户可以在加载VGS ko时设置模块参数（g\_max\_vgs\_task）来设置VGS支持的最大task数。task数取值范围为\[20，800\]，默认为200。

-   node

    VGS硬件的最小执行单位，一个task对应一个或多个node。node中包含硬件工作需要的信息，比如源图像地址，目标图像地址，操作类型等，并按照硬件要求的形式组织。用户可以在加载VGS ko时设置模块参数（g\_max\_vgs\_node）来设置VGS支持的最大node数。node数取值范围为\[20，800\]，默认为200。

-   HANDLE

    任务句柄，标识一个job。

### 功能描述<a name="ZH-CN_TOPIC_0000002441658625"></a>

VGS的功能主要有缩放、OSD、Cover、Mosaic、画线、像素格式转换、视频存储格式转换、压缩/解压、旋转、亮度和统计、Corner\_rect、拼接、低功耗策略。

-   缩放

    VGS支持对一幅图像进行缩放，最大支持图像宽高均放大16倍，最大支持图像宽高均缩小15倍。支持单分量（Y）缩放。

-   OSD

    VGS支持在一幅图像上叠加一张位图，可设置位图是否反色，支持批量打OSD。

    **注意**：

    -   需打多个OSD\(批量打OSD\)时，内部是通过提交多个task来实现，每个task使用上一个task打完OSD的图像作为当前task的源图像进行OSD处理。
    -   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100不支持反色。

-   Cover

    VGS支持对一幅图像进行遮挡操作，遮挡区域形状可以是矩形或者任意四边形，遮挡区域颜色为纯色，支持批量打Cover。

    **注意**：

    -   需打多个Cover\(批量打Cover\)时，内部是通过提交多个task来实现，每个task使用上一个task打完Cover的图像作为当前task的源图像进行打Cover处理。
    -   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100不支持实心任意四边形，只支持空心任意四边形和实心矩形。

-   Mosaic

    VGS支持对一幅图像进行打Mosaic操作，Mosaic块大小有8x8、16x16、32x32、64x64四种选择，Mosaic区域形状为矩形，每个Mosaic块为纯色，支持批量打Mosaic。

    **注意**：需要打多个Mosaic\(批量打Mosaic\)时，内部是通过提交多个task来实现，每个task使用上一个task打完Mosaic的图像作为当前task的源图像进行打Mosaic处理。

-   Corner\_rect

    VGS支持对一幅图像进行叠加Corner\_rect操作，Corner\_rect类型可以角框和实线框，支持批量打Corner\_rect。

    **注意**：

    -   需要打多个Corner\_rect\(批量打Corner\_rect\)时，内部是通过提交多个task来实现，每个task使用上一个task打完Corner\_rect的图像作为当前task的源图像进行打Corner\_rect处理。批量打Corner\_rect时，每个Corner\_rect颜色和类型是一样的。
    -   仅SS928V100支持。

-   拼接

    VGS支持对最多4幅图像进行水平拼接操作，图像数量可设置。

    **注意**：

    -   拼接输入的图像的压缩类型、宽高、像素格式等信息需要保持一致。不支持对紧凑段压缩图像进行拼接。
    -   仅SS928V100支持。

-   画线

    VGS支持对一幅图像进行画线操作，支持批量画线。

    **注意**：

    -   画线操作时，如果起始坐标和结束坐标的X坐标相同，则起始坐标和结束坐标的Y坐标不变，X坐标分别向右增加线的宽度。
    -   画线操作时，如果起始坐标和结束坐标的X坐标不相同，则X坐标不变，起始坐标与结束坐标的Y坐标分别向下方延伸线的宽度（即X坐标不变，Y坐标向下增加线宽）。

-   像素格式转换

    VGS支持的输入输出像素格式包括semi-planar 420、semi-planar 422和单分量（Y）。支持semi-planar 420与semi-planar 422之间的格式转换，支持semi-planar 420、semi-planar 422到单分量（Y）格式的转换，做像素格式转换时，支持UV先后顺序可调整。

-   视频存储格式转换

    VGS支持Tile格式转为linear格式。

-   压缩/解压

    VGS支持linear格式下semi-planar 422、semi-planar 420和单分量（Y）格式的压缩/解压。支持Tile格式下semi-planar 420格式的解压缩。

-   亮度和统计

    统计图像的指定区域亮度信息之和。支持批量统计。

-   旋转

    VGS支持0、90、180和270度的旋转。

-   低功耗策略

    VGS模块使用低功耗策略，在VGS没有工作时VGS时钟是关闭的，这时候手动读写VGS模块的寄存器可能会有读写错误或者卡死的现象；可通过设置模块参数（g\_save\_power\_en）的值来开启（g\_save\_power\_en=1）或关闭（g\_save\_power\_en=0）低功耗策略，仅SS626V100支持该模块参数。

**表 1**  SS528V100 VGS硬件规格

<a name="table166mcpsimp"></a>
<table><thead align="left"><tr id="row172mcpsimp"><th class="cellrowborder" valign="top" width="32%" id="mcps1.2.3.1.1"><p xml:lang="zh-CN" id="p174mcpsimp"><a name="p174mcpsimp"></a><a name="p174mcpsimp"></a>规格点</p>
</th>
<th class="cellrowborder" valign="top" width="68%" id="mcps1.2.3.1.2"><p xml:lang="zh-CN" id="p176mcpsimp"><a name="p176mcpsimp"></a><a name="p176mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row178mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p180mcpsimp"><a name="p180mcpsimp"></a><a name="p180mcpsimp"></a>视频输入数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p182mcpsimp"><a name="p182mcpsimp"></a><a name="p182mcpsimp"></a>1<span xml:lang="zh-CN" id="ph183mcpsimp"><a name="ph183mcpsimp"></a><a name="ph183mcpsimp"></a>、支持</span>linear和Tile格式<span xml:lang="zh-CN" id="ph184mcpsimp"><a name="ph184mcpsimp"></a><a name="ph184mcpsimp"></a>。</span></p>
<p xml:lang="zh-CN" id="p185mcpsimp"><a name="p185mcpsimp"></a><a name="p185mcpsimp"></a>2、支持输入紧凑段压缩、非紧凑段压缩、行压缩、Tile压缩图像。</p>
<p id="p186mcpsimp"><a name="p186mcpsimp"></a><a name="p186mcpsimp"></a><span xml:lang="zh-CN" id="ph187mcpsimp"><a name="ph187mcpsimp"></a><a name="ph187mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph188mcpsimp"><a name="ph188mcpsimp"></a><a name="ph188mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输入。</p>
<p id="p189mcpsimp"><a name="p189mcpsimp"></a><a name="p189mcpsimp"></a>4、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row190mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p192mcpsimp"><a name="p192mcpsimp"></a><a name="p192mcpsimp"></a>输入图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p194mcpsimp"><a name="p194mcpsimp"></a><a name="p194mcpsimp"></a>1、最小支持：32x32。</p>
<p xml:lang="zh-CN" id="p195mcpsimp"><a name="p195mcpsimp"></a><a name="p195mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p196mcpsimp"><a name="p196mcpsimp"></a><a name="p196mcpsimp"></a>3、宽度和高度均为2像素对齐，Linear格式stride 16对齐。Tile格式stride 64对齐。</p>
<p xml:lang="zh-CN" id="p197mcpsimp"><a name="p197mcpsimp"></a><a name="p197mcpsimp"></a>注意：</p>
<p id="p198mcpsimp"><a name="p198mcpsimp"></a><a name="p198mcpsimp"></a>要进行Mosaic处理时，输入图像宽度不能小于64。</p>
</td>
</tr>
<tr id="row199mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p201mcpsimp"><a name="p201mcpsimp"></a><a name="p201mcpsimp"></a>视频输出数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p203mcpsimp"><a name="p203mcpsimp"></a><a name="p203mcpsimp"></a>1<span xml:lang="zh-CN" id="ph204mcpsimp"><a name="ph204mcpsimp"></a><a name="ph204mcpsimp"></a>、只支持</span>linear格式<span xml:lang="zh-CN" id="ph205mcpsimp"><a name="ph205mcpsimp"></a><a name="ph205mcpsimp"></a>。</span></p>
<p id="p22081525194217"><a name="p22081525194217"></a><a name="p22081525194217"></a><span xml:lang="zh-CN" id="ph32081525114210"><a name="ph32081525114210"></a><a name="ph32081525114210"></a>2、支持输出紧凑段压缩、非紧凑段压缩、行压缩图像。</span></p>
<p id="p206mcpsimp"><a name="p206mcpsimp"></a><a name="p206mcpsimp"></a><span xml:lang="zh-CN" id="ph207mcpsimp"><a name="ph207mcpsimp"></a><a name="ph207mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph208mcpsimp"><a name="ph208mcpsimp"></a><a name="ph208mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输出。</p>
<p id="p209mcpsimp"><a name="p209mcpsimp"></a><a name="p209mcpsimp"></a>4、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row210mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p212mcpsimp"><a name="p212mcpsimp"></a><a name="p212mcpsimp"></a>输出图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p214mcpsimp"><a name="p214mcpsimp"></a><a name="p214mcpsimp"></a>1、最小支持：4x4。</p>
<p xml:lang="zh-CN" id="p215mcpsimp"><a name="p215mcpsimp"></a><a name="p215mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p216mcpsimp"><a name="p216mcpsimp"></a><a name="p216mcpsimp"></a>3、宽度和高度均为2像素对齐，stride 16对齐。</p>
</td>
</tr>
<tr id="row217mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p219mcpsimp"><a name="p219mcpsimp"></a><a name="p219mcpsimp"></a>缩放能力</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p221mcpsimp"><a name="p221mcpsimp"></a><a name="p221mcpsimp"></a>1、水平、垂直支持16倍放大。</p>
<p xml:lang="zh-CN" id="p222mcpsimp"><a name="p222mcpsimp"></a><a name="p222mcpsimp"></a>2、水平、垂直支持15倍缩小。</p>
<p xml:lang="zh-CN" id="p223mcpsimp"><a name="p223mcpsimp"></a><a name="p223mcpsimp"></a>3、当输入图像宽度大于2688且输出为非紧凑段压缩时，只支持10倍缩小。</p>
</td>
</tr>
</tbody>
</table>

**表 2**  SS625V100 VGS硬件规格

<a name="table224mcpsimp"></a>
<table><thead align="left"><tr id="row230mcpsimp"><th class="cellrowborder" valign="top" width="32%" id="mcps1.2.3.1.1"><p xml:lang="zh-CN" id="p232mcpsimp"><a name="p232mcpsimp"></a><a name="p232mcpsimp"></a>规格点</p>
</th>
<th class="cellrowborder" valign="top" width="68%" id="mcps1.2.3.1.2"><p xml:lang="zh-CN" id="p234mcpsimp"><a name="p234mcpsimp"></a><a name="p234mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row236mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p238mcpsimp"><a name="p238mcpsimp"></a><a name="p238mcpsimp"></a>视频输入数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p240mcpsimp"><a name="p240mcpsimp"></a><a name="p240mcpsimp"></a>1<span xml:lang="zh-CN" id="ph241mcpsimp"><a name="ph241mcpsimp"></a><a name="ph241mcpsimp"></a>、支持</span>linear和Tile格式<span xml:lang="zh-CN" id="ph242mcpsimp"><a name="ph242mcpsimp"></a><a name="ph242mcpsimp"></a>。</span></p>
<p xml:lang="zh-CN" id="p243mcpsimp"><a name="p243mcpsimp"></a><a name="p243mcpsimp"></a>2、支持输入紧凑段压缩、非紧凑段压缩、行压缩、Tile压缩图像。</p>
<p id="p244mcpsimp"><a name="p244mcpsimp"></a><a name="p244mcpsimp"></a><span xml:lang="zh-CN" id="ph245mcpsimp"><a name="ph245mcpsimp"></a><a name="ph245mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph246mcpsimp"><a name="ph246mcpsimp"></a><a name="ph246mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输入。</p>
<p id="p247mcpsimp"><a name="p247mcpsimp"></a><a name="p247mcpsimp"></a>4、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row248mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p250mcpsimp"><a name="p250mcpsimp"></a><a name="p250mcpsimp"></a>输入图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p252mcpsimp"><a name="p252mcpsimp"></a><a name="p252mcpsimp"></a>1、最小支持：32x32。</p>
<p xml:lang="zh-CN" id="p253mcpsimp"><a name="p253mcpsimp"></a><a name="p253mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p254mcpsimp"><a name="p254mcpsimp"></a><a name="p254mcpsimp"></a>3、宽度和高度均为2像素对齐（在ss_mpi_vgs_add_scale_task和ss_mpi_vgs_add_online_task接口中支持linear非压缩奇数宽高图像输入），Line<span xml:lang="en-US" id="ph255mcpsimp"><a name="ph255mcpsimp"></a><a name="ph255mcpsimp"></a>a</span>r格式stride 16对齐。Tile格式stride 64对齐。</p>
<p xml:lang="zh-CN" id="p256mcpsimp"><a name="p256mcpsimp"></a><a name="p256mcpsimp"></a>注意：</p>
<p id="p257mcpsimp"><a name="p257mcpsimp"></a><a name="p257mcpsimp"></a>要进行Mosaic处理时，输入图像宽度不能小于64。</p>
</td>
</tr>
<tr id="row258mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p260mcpsimp"><a name="p260mcpsimp"></a><a name="p260mcpsimp"></a>视频输出数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p262mcpsimp"><a name="p262mcpsimp"></a><a name="p262mcpsimp"></a>1<span xml:lang="zh-CN" id="ph263mcpsimp"><a name="ph263mcpsimp"></a><a name="ph263mcpsimp"></a>、只支持</span>linear格式<span xml:lang="zh-CN" id="ph264mcpsimp"><a name="ph264mcpsimp"></a><a name="ph264mcpsimp"></a>。</span></p>
<p id="p265mcpsimp"><a name="p265mcpsimp"></a><a name="p265mcpsimp"></a><span xml:lang="zh-CN" id="ph266mcpsimp"><a name="ph266mcpsimp"></a><a name="ph266mcpsimp"></a>2、支持输出紧凑段压缩、非紧凑段压缩、行压缩图像。3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph267mcpsimp"><a name="ph267mcpsimp"></a><a name="ph267mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输出。</p>
<p id="p268mcpsimp"><a name="p268mcpsimp"></a><a name="p268mcpsimp"></a>4、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row269mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p271mcpsimp"><a name="p271mcpsimp"></a><a name="p271mcpsimp"></a>输出图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p273mcpsimp"><a name="p273mcpsimp"></a><a name="p273mcpsimp"></a>1、最小支持：4x4。</p>
<p xml:lang="zh-CN" id="p274mcpsimp"><a name="p274mcpsimp"></a><a name="p274mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p275mcpsimp"><a name="p275mcpsimp"></a><a name="p275mcpsimp"></a>3、宽度和高度均为2像素对齐，stride 16对齐。</p>
</td>
</tr>
<tr id="row276mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p278mcpsimp"><a name="p278mcpsimp"></a><a name="p278mcpsimp"></a>缩放能力</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p280mcpsimp"><a name="p280mcpsimp"></a><a name="p280mcpsimp"></a>1、水平、垂直支持16倍放大。</p>
<p xml:lang="zh-CN" id="p281mcpsimp"><a name="p281mcpsimp"></a><a name="p281mcpsimp"></a>2、水平、垂直支持15倍缩小。</p>
<p xml:lang="zh-CN" id="p282mcpsimp"><a name="p282mcpsimp"></a><a name="p282mcpsimp"></a>3、当输入图像宽度大于2688且输出为非紧凑段压缩时，只支持10倍缩小。</p>
</td>
</tr>
</tbody>
</table>

**表 3**  SS524V100 VGS硬件规格

<a name="table283mcpsimp"></a>
<table><thead align="left"><tr id="row289mcpsimp"><th class="cellrowborder" valign="top" width="32%" id="mcps1.2.3.1.1"><p xml:lang="zh-CN" id="p291mcpsimp"><a name="p291mcpsimp"></a><a name="p291mcpsimp"></a>规格点</p>
</th>
<th class="cellrowborder" valign="top" width="68%" id="mcps1.2.3.1.2"><p xml:lang="zh-CN" id="p293mcpsimp"><a name="p293mcpsimp"></a><a name="p293mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row295mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p297mcpsimp"><a name="p297mcpsimp"></a><a name="p297mcpsimp"></a>视频输入数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p299mcpsimp"><a name="p299mcpsimp"></a><a name="p299mcpsimp"></a>1<span xml:lang="zh-CN" id="ph300mcpsimp"><a name="ph300mcpsimp"></a><a name="ph300mcpsimp"></a>、支持</span>linear和Tile格式<span xml:lang="zh-CN" id="ph301mcpsimp"><a name="ph301mcpsimp"></a><a name="ph301mcpsimp"></a>。</span></p>
<p xml:lang="zh-CN" id="p302mcpsimp"><a name="p302mcpsimp"></a><a name="p302mcpsimp"></a>2、支持输入紧凑段压缩、非紧凑段压缩、行压缩、Tile压缩图像。</p>
<p id="p303mcpsimp"><a name="p303mcpsimp"></a><a name="p303mcpsimp"></a><span xml:lang="zh-CN" id="ph304mcpsimp"><a name="ph304mcpsimp"></a><a name="ph304mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph305mcpsimp"><a name="ph305mcpsimp"></a><a name="ph305mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输入。</p>
<p id="p306mcpsimp"><a name="p306mcpsimp"></a><a name="p306mcpsimp"></a>4、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row307mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p309mcpsimp"><a name="p309mcpsimp"></a><a name="p309mcpsimp"></a>输入图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p311mcpsimp"><a name="p311mcpsimp"></a><a name="p311mcpsimp"></a>1、最小支持：32x32。</p>
<p xml:lang="zh-CN" id="p312mcpsimp"><a name="p312mcpsimp"></a><a name="p312mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p313mcpsimp"><a name="p313mcpsimp"></a><a name="p313mcpsimp"></a>3、宽度和高度均为2像素对齐，Linear格式stride 16对齐。Tile格式stride 64对齐。</p>
<p xml:lang="zh-CN" id="p314mcpsimp"><a name="p314mcpsimp"></a><a name="p314mcpsimp"></a>注意：</p>
<p xml:lang="zh-CN" id="p315mcpsimp"><a name="p315mcpsimp"></a><a name="p315mcpsimp"></a>要进行Mosaic处理时，输入图像宽度不能小于64。</p>
</td>
</tr>
<tr id="row316mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p318mcpsimp"><a name="p318mcpsimp"></a><a name="p318mcpsimp"></a>视频输出数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p320mcpsimp"><a name="p320mcpsimp"></a><a name="p320mcpsimp"></a>1<span xml:lang="zh-CN" id="ph321mcpsimp"><a name="ph321mcpsimp"></a><a name="ph321mcpsimp"></a>、只支持</span>linear格式<span xml:lang="zh-CN" id="ph322mcpsimp"><a name="ph322mcpsimp"></a><a name="ph322mcpsimp"></a>。</span></p>
<p id="p1319817340194"><a name="p1319817340194"></a><a name="p1319817340194"></a><span xml:lang="zh-CN" id="ph14199123416198"><a name="ph14199123416198"></a><a name="ph14199123416198"></a>2、支持输出紧凑段压缩、非紧凑段压缩、行压缩图像。</span></p>
<p id="p323mcpsimp"><a name="p323mcpsimp"></a><a name="p323mcpsimp"></a><span xml:lang="zh-CN" id="ph324mcpsimp"><a name="ph324mcpsimp"></a><a name="ph324mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph325mcpsimp"><a name="ph325mcpsimp"></a><a name="ph325mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输出。</p>
<p id="p326mcpsimp"><a name="p326mcpsimp"></a><a name="p326mcpsimp"></a>4、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row327mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p329mcpsimp"><a name="p329mcpsimp"></a><a name="p329mcpsimp"></a>输出图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p331mcpsimp"><a name="p331mcpsimp"></a><a name="p331mcpsimp"></a>1、最小支持：4x4。</p>
<p xml:lang="zh-CN" id="p332mcpsimp"><a name="p332mcpsimp"></a><a name="p332mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p333mcpsimp"><a name="p333mcpsimp"></a><a name="p333mcpsimp"></a>3、宽度和高度均为2像素对齐，stride 16对齐。</p>
</td>
</tr>
<tr id="row334mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p336mcpsimp"><a name="p336mcpsimp"></a><a name="p336mcpsimp"></a>缩放能力</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p338mcpsimp"><a name="p338mcpsimp"></a><a name="p338mcpsimp"></a>1、水平、垂直支持16倍放大。</p>
<p xml:lang="zh-CN" id="p339mcpsimp"><a name="p339mcpsimp"></a><a name="p339mcpsimp"></a>2、水平、垂直支持15倍缩小。</p>
<p xml:lang="zh-CN" id="p340mcpsimp"><a name="p340mcpsimp"></a><a name="p340mcpsimp"></a>3、当输入图像宽度大于2688且输出为非紧凑段压缩时，只支持10倍缩小。</p>
</td>
</tr>
</tbody>
</table>

**表 4**  SS522V101 VGS硬件规格

<a name="table341mcpsimp"></a>
<table><thead align="left"><tr id="row347mcpsimp"><th class="cellrowborder" valign="top" width="32%" id="mcps1.2.3.1.1"><p xml:lang="zh-CN" id="p349mcpsimp"><a name="p349mcpsimp"></a><a name="p349mcpsimp"></a>规格点</p>
</th>
<th class="cellrowborder" valign="top" width="68%" id="mcps1.2.3.1.2"><p xml:lang="zh-CN" id="p351mcpsimp"><a name="p351mcpsimp"></a><a name="p351mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row353mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p355mcpsimp"><a name="p355mcpsimp"></a><a name="p355mcpsimp"></a>视频输入数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p357mcpsimp"><a name="p357mcpsimp"></a><a name="p357mcpsimp"></a>1<span xml:lang="zh-CN" id="ph358mcpsimp"><a name="ph358mcpsimp"></a><a name="ph358mcpsimp"></a>、支持</span>linear和Tile格式<span xml:lang="zh-CN" id="ph359mcpsimp"><a name="ph359mcpsimp"></a><a name="ph359mcpsimp"></a>。</span></p>
<p xml:lang="zh-CN" id="p360mcpsimp"><a name="p360mcpsimp"></a><a name="p360mcpsimp"></a>2、支持输入紧凑段压缩、非紧凑段压缩、行压缩、Tile压缩图像。</p>
<p id="p361mcpsimp"><a name="p361mcpsimp"></a><a name="p361mcpsimp"></a><span xml:lang="zh-CN" id="ph362mcpsimp"><a name="ph362mcpsimp"></a><a name="ph362mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph363mcpsimp"><a name="ph363mcpsimp"></a><a name="ph363mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输入。</p>
<p id="p1470298418"><a name="p1470298418"></a><a name="p1470298418"></a>4、支持OT_PIXEL_FORMAT_YUYV_PACKAGE_422、OT_PIXEL_FORMAT_YVYU_PACKAGE_422、OT_PIXEL_FORMAT_UYVY_PACKAGE_422、OT_PIXEL_FORMAT_VYUY_PACKAGE_422、OT_PIXEL_FORMAT_YYUV_PACKAGE_422、OT_PIXEL_FORMAT_YYVU_PACKAGE_422、OT_PIXEL_FORMAT_UVYY_PACKAGE_422、OT_PIXEL_FORMAT_VUYY_PACKAGE_422、OT_PIXEL_FORMAT_VY1UY0_PACKAGE_422。</p>
<p id="p364mcpsimp"><a name="p364mcpsimp"></a><a name="p364mcpsimp"></a>5、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row365mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p367mcpsimp"><a name="p367mcpsimp"></a><a name="p367mcpsimp"></a>输入图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p369mcpsimp"><a name="p369mcpsimp"></a><a name="p369mcpsimp"></a>1、最小支持：32x32。</p>
<p xml:lang="zh-CN" id="p370mcpsimp"><a name="p370mcpsimp"></a><a name="p370mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p371mcpsimp"><a name="p371mcpsimp"></a><a name="p371mcpsimp"></a>3、宽度和高度均为2像素对齐，Linear格式stride 16对齐。Tile格式stride 64对齐。</p>
<p xml:lang="zh-CN" id="p372mcpsimp"><a name="p372mcpsimp"></a><a name="p372mcpsimp"></a>注意：</p>
<p xml:lang="zh-CN" id="p373mcpsimp"><a name="p373mcpsimp"></a><a name="p373mcpsimp"></a>要进行Mosaic处理时，输入图像宽度不能小于64。</p>
</td>
</tr>
<tr id="row374mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p376mcpsimp"><a name="p376mcpsimp"></a><a name="p376mcpsimp"></a>视频输出数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p378mcpsimp"><a name="p378mcpsimp"></a><a name="p378mcpsimp"></a>1<span xml:lang="zh-CN" id="ph379mcpsimp"><a name="ph379mcpsimp"></a><a name="ph379mcpsimp"></a>、只支持</span>linear格式<span xml:lang="zh-CN" id="ph380mcpsimp"><a name="ph380mcpsimp"></a><a name="ph380mcpsimp"></a>。</span></p>
<p id="p58143405615"><a name="p58143405615"></a><a name="p58143405615"></a><span xml:lang="zh-CN" id="ph148141840668"><a name="ph148141840668"></a><a name="ph148141840668"></a>2、支持输出紧凑段压缩、非紧凑段压缩、行压缩图像。</span></p>
<p id="p381mcpsimp"><a name="p381mcpsimp"></a><a name="p381mcpsimp"></a><span xml:lang="zh-CN" id="ph382mcpsimp"><a name="ph382mcpsimp"></a><a name="ph382mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph383mcpsimp"><a name="ph383mcpsimp"></a><a name="ph383mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输出。</p>
<p id="p384mcpsimp"><a name="p384mcpsimp"></a><a name="p384mcpsimp"></a>4、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row385mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p387mcpsimp"><a name="p387mcpsimp"></a><a name="p387mcpsimp"></a>输出图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p389mcpsimp"><a name="p389mcpsimp"></a><a name="p389mcpsimp"></a>1、最小支持：4x4。</p>
<p xml:lang="zh-CN" id="p390mcpsimp"><a name="p390mcpsimp"></a><a name="p390mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p391mcpsimp"><a name="p391mcpsimp"></a><a name="p391mcpsimp"></a>3、宽度和高度均为2像素对齐，stride 16对齐。</p>
</td>
</tr>
<tr id="row392mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p394mcpsimp"><a name="p394mcpsimp"></a><a name="p394mcpsimp"></a>缩放能力</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p396mcpsimp"><a name="p396mcpsimp"></a><a name="p396mcpsimp"></a>1、水平、垂直支持16倍放大。</p>
<p xml:lang="zh-CN" id="p397mcpsimp"><a name="p397mcpsimp"></a><a name="p397mcpsimp"></a>2、水平、垂直支持15倍缩小。</p>
<p xml:lang="zh-CN" id="p398mcpsimp"><a name="p398mcpsimp"></a><a name="p398mcpsimp"></a>3、当输入图像宽度大于2688且输出为非紧凑段压缩时，只支持10倍缩小。</p>
</td>
</tr>
</tbody>
</table>

**表 5**  SS928V100 VGS硬件规格

<a name="table399mcpsimp"></a>
<table><thead align="left"><tr id="row405mcpsimp"><th class="cellrowborder" valign="top" width="32%" id="mcps1.2.3.1.1"><p xml:lang="zh-CN" id="p407mcpsimp"><a name="p407mcpsimp"></a><a name="p407mcpsimp"></a>规格点</p>
</th>
<th class="cellrowborder" valign="top" width="68%" id="mcps1.2.3.1.2"><p xml:lang="zh-CN" id="p409mcpsimp"><a name="p409mcpsimp"></a><a name="p409mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row411mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p413mcpsimp"><a name="p413mcpsimp"></a><a name="p413mcpsimp"></a>视频输入数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p415mcpsimp"><a name="p415mcpsimp"></a><a name="p415mcpsimp"></a>1<span xml:lang="zh-CN" id="ph416mcpsimp"><a name="ph416mcpsimp"></a><a name="ph416mcpsimp"></a>、支持</span>linear和Tile格式<span xml:lang="zh-CN" id="ph417mcpsimp"><a name="ph417mcpsimp"></a><a name="ph417mcpsimp"></a>。</span></p>
<p xml:lang="zh-CN" id="p418mcpsimp"><a name="p418mcpsimp"></a><a name="p418mcpsimp"></a>2、支持输入紧凑段压缩、非紧凑段压缩、Tile压缩图像。</p>
<p id="p419mcpsimp"><a name="p419mcpsimp"></a><a name="p419mcpsimp"></a><span xml:lang="zh-CN" id="ph420mcpsimp"><a name="ph420mcpsimp"></a><a name="ph420mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph421mcpsimp"><a name="ph421mcpsimp"></a><a name="ph421mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输入。</p>
<p id="p422mcpsimp"><a name="p422mcpsimp"></a><a name="p422mcpsimp"></a>4、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row423mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p425mcpsimp"><a name="p425mcpsimp"></a><a name="p425mcpsimp"></a>输入图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p427mcpsimp"><a name="p427mcpsimp"></a><a name="p427mcpsimp"></a>1、最小支持：32x32。</p>
<p xml:lang="zh-CN" id="p428mcpsimp"><a name="p428mcpsimp"></a><a name="p428mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p429mcpsimp"><a name="p429mcpsimp"></a><a name="p429mcpsimp"></a>3、宽度和高度均为2像素对齐，Linear格式stride 32对齐。Tile格式stride 64对齐。</p>
<p xml:lang="zh-CN" id="p430mcpsimp"><a name="p430mcpsimp"></a><a name="p430mcpsimp"></a>注意：</p>
<p id="p431mcpsimp"><a name="p431mcpsimp"></a><a name="p431mcpsimp"></a>要进行Mosaic处理时，输入图像宽度不能小于64。仅缩放时，最小支持到8x6。</p>
</td>
</tr>
<tr id="row432mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p434mcpsimp"><a name="p434mcpsimp"></a><a name="p434mcpsimp"></a>视频输出数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p436mcpsimp"><a name="p436mcpsimp"></a><a name="p436mcpsimp"></a>1<span xml:lang="zh-CN" id="ph437mcpsimp"><a name="ph437mcpsimp"></a><a name="ph437mcpsimp"></a>、只支持</span>linear格式<span xml:lang="zh-CN" id="ph438mcpsimp"><a name="ph438mcpsimp"></a><a name="ph438mcpsimp"></a>。</span></p>
<p xml:lang="zh-CN" id="p439mcpsimp"><a name="p439mcpsimp"></a><a name="p439mcpsimp"></a>2、支持输出紧凑段压缩、非紧凑段压缩。</p>
<p id="p440mcpsimp"><a name="p440mcpsimp"></a><a name="p440mcpsimp"></a><span xml:lang="zh-CN" id="ph441mcpsimp"><a name="ph441mcpsimp"></a><a name="ph441mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph442mcpsimp"><a name="ph442mcpsimp"></a><a name="ph442mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420和OT_PIXEL_FORMAT_YUV_400格式输出。</p>
<p id="p443mcpsimp"><a name="p443mcpsimp"></a><a name="p443mcpsimp"></a>4、支持OT_PIXEL_FORMAT_YUYV_PACKAGE_422、OT_PIXEL_FORMAT_YVYU_PACKAGE_422、OT_PIXEL_FORMAT_UYVY_PACKAGE_422、OT_PIXEL_FORMAT_VYUY_PACKAGE_422、OT_PIXEL_FORMAT_YYUV_PACKAGE_422、OT_PIXEL_FORMAT_YYVU_PACKAGE_422、OT_PIXEL_FORMAT_UVYY_PACKAGE_422、OT_PIXEL_FORMAT_VUYY_PACKAGE_422、OT_PIXEL_FORMAT_VY1UY0_PACKAGE_422。</p>
<p id="p444mcpsimp"><a name="p444mcpsimp"></a><a name="p444mcpsimp"></a>5、只支持8 bit YUV。</p>
<p id="p445mcpsimp"><a name="p445mcpsimp"></a><a name="p445mcpsimp"></a>注意：</p>
<a name="ul31801843173219"></a><a name="ul31801843173219"></a><ul id="ul31801843173219"><li>不支持PACKAGE数据转换成PACKAGE数据。</li><li>不支持同时进行输出PACKAGE格式和缩放。</li><li>不支持同时进行压缩输入和PACKAGE格式输入。</li><li>不支持同时进行压缩输出和PACKAGE格式输出。</li></ul>
</td>
</tr>
<tr id="row447mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p449mcpsimp"><a name="p449mcpsimp"></a><a name="p449mcpsimp"></a>输出图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p451mcpsimp"><a name="p451mcpsimp"></a><a name="p451mcpsimp"></a>1、最小支持：4x4。</p>
<p xml:lang="zh-CN" id="p452mcpsimp"><a name="p452mcpsimp"></a><a name="p452mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p453mcpsimp"><a name="p453mcpsimp"></a><a name="p453mcpsimp"></a>3、宽度和高度均为2像素对齐，stride 32对齐。</p>
<p xml:lang="zh-CN" id="p454mcpsimp"><a name="p454mcpsimp"></a><a name="p454mcpsimp"></a>注意：</p>
<p xml:lang="zh-CN" id="p455mcpsimp"><a name="p455mcpsimp"></a><a name="p455mcpsimp"></a>仅缩放时，最小支持到2x2。</p>
</td>
</tr>
<tr id="row456mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p458mcpsimp"><a name="p458mcpsimp"></a><a name="p458mcpsimp"></a>缩放能力</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p460mcpsimp"><a name="p460mcpsimp"></a><a name="p460mcpsimp"></a>1、支持16倍放大。</p>
<p xml:lang="zh-CN" id="p461mcpsimp"><a name="p461mcpsimp"></a><a name="p461mcpsimp"></a>2、支持30倍缩小。</p>
<p id="p1285142671012"><a name="p1285142671012"></a><a name="p1285142671012"></a>3、当输入图像CROP后宽度大于8192（2*4096）且输出为非压缩时，只支持15倍缩小。</p>
</td>
</tr>
</tbody>
</table>

**表 6**  SS626V100 VGS硬件规格

<a name="table462mcpsimp"></a>
<table><thead align="left"><tr id="row468mcpsimp"><th class="cellrowborder" valign="top" width="32%" id="mcps1.2.3.1.1"><p xml:lang="zh-CN" id="p470mcpsimp"><a name="p470mcpsimp"></a><a name="p470mcpsimp"></a>规格点</p>
</th>
<th class="cellrowborder" valign="top" width="68%" id="mcps1.2.3.1.2"><p xml:lang="zh-CN" id="p472mcpsimp"><a name="p472mcpsimp"></a><a name="p472mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row474mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p476mcpsimp"><a name="p476mcpsimp"></a><a name="p476mcpsimp"></a>视频输入数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p478mcpsimp"><a name="p478mcpsimp"></a><a name="p478mcpsimp"></a>1<span xml:lang="zh-CN" id="ph479mcpsimp"><a name="ph479mcpsimp"></a><a name="ph479mcpsimp"></a>、支持</span>linear和Tile格式<span xml:lang="zh-CN" id="ph480mcpsimp"><a name="ph480mcpsimp"></a><a name="ph480mcpsimp"></a>。</span></p>
<p xml:lang="zh-CN" id="p481mcpsimp"><a name="p481mcpsimp"></a><a name="p481mcpsimp"></a>2、支持输入紧凑段压缩、非紧凑段压缩、行压缩、Tile压缩图像。</p>
<p id="p482mcpsimp"><a name="p482mcpsimp"></a><a name="p482mcpsimp"></a><span xml:lang="zh-CN" id="ph483mcpsimp"><a name="ph483mcpsimp"></a><a name="ph483mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、<span xml:lang="zh-CN" id="ph484mcpsimp"><a name="ph484mcpsimp"></a><a name="ph484mcpsimp"></a>OT</span>_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph485mcpsimp"><a name="ph485mcpsimp"></a><a name="ph485mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、<span xml:lang="zh-CN" id="ph486mcpsimp"><a name="ph486mcpsimp"></a><a name="ph486mcpsimp"></a>OT</span>_PIXEL_FORMAT_YUV_SEMIPLANAR_420和<span xml:lang="zh-CN" id="ph487mcpsimp"><a name="ph487mcpsimp"></a><a name="ph487mcpsimp"></a>OT</span>_PIXEL_FORMAT_YUV_400格式输入。</p>
<p id="p488mcpsimp"><a name="p488mcpsimp"></a><a name="p488mcpsimp"></a>4、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row489mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p491mcpsimp"><a name="p491mcpsimp"></a><a name="p491mcpsimp"></a>输入图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p493mcpsimp"><a name="p493mcpsimp"></a><a name="p493mcpsimp"></a>1、最小支持：32x32。</p>
<p xml:lang="zh-CN" id="p494mcpsimp"><a name="p494mcpsimp"></a><a name="p494mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p495mcpsimp"><a name="p495mcpsimp"></a><a name="p495mcpsimp"></a>3、宽度和高度均为2像素对齐，Linear格式stride 16对齐。Tile格式stride 64对齐。</p>
<p xml:lang="zh-CN" id="p496mcpsimp"><a name="p496mcpsimp"></a><a name="p496mcpsimp"></a>注意：</p>
<p id="p497mcpsimp"><a name="p497mcpsimp"></a><a name="p497mcpsimp"></a>要进行Mosaic处理时，输入图像宽度不能小于64。</p>
</td>
</tr>
<tr id="row498mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p500mcpsimp"><a name="p500mcpsimp"></a><a name="p500mcpsimp"></a>视频输出数据格式</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p id="p502mcpsimp"><a name="p502mcpsimp"></a><a name="p502mcpsimp"></a>1<span xml:lang="zh-CN" id="ph503mcpsimp"><a name="ph503mcpsimp"></a><a name="ph503mcpsimp"></a>、只支持</span>linear格式<span xml:lang="zh-CN" id="ph504mcpsimp"><a name="ph504mcpsimp"></a><a name="ph504mcpsimp"></a>。</span></p>
<p id="p151714587192"><a name="p151714587192"></a><a name="p151714587192"></a><span xml:lang="zh-CN" id="ph217175813192"><a name="ph217175813192"></a><a name="ph217175813192"></a>2、支持输出紧凑段压缩、非紧凑段压缩、行压缩图像。</span></p>
<p id="p505mcpsimp"><a name="p505mcpsimp"></a><a name="p505mcpsimp"></a><span xml:lang="zh-CN" id="ph506mcpsimp"><a name="ph506mcpsimp"></a><a name="ph506mcpsimp"></a>3、支持OT_</span>PIXEL_FORMAT_YVU_SEMIPLANAR_422、<span xml:lang="zh-CN" id="ph507mcpsimp"><a name="ph507mcpsimp"></a><a name="ph507mcpsimp"></a>OT</span>_PIXEL_FORMAT_YVU_SEMIPLANAR_420、<span xml:lang="zh-CN" id="ph508mcpsimp"><a name="ph508mcpsimp"></a><a name="ph508mcpsimp"></a>OT_</span>PIXEL_FORMAT_YUV_SEMIPLANAR_422、<span xml:lang="zh-CN" id="ph509mcpsimp"><a name="ph509mcpsimp"></a><a name="ph509mcpsimp"></a>OT</span>_PIXEL_FORMAT_YUV_SEMIPLANAR_420和<span xml:lang="zh-CN" id="ph510mcpsimp"><a name="ph510mcpsimp"></a><a name="ph510mcpsimp"></a>OT</span>_PIXEL_FORMAT_YUV_400格式输出。</p>
<p id="p511mcpsimp"><a name="p511mcpsimp"></a><a name="p511mcpsimp"></a>4、只支持8 bit YUV。</p>
</td>
</tr>
<tr id="row512mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p514mcpsimp"><a name="p514mcpsimp"></a><a name="p514mcpsimp"></a>输出图像分辨率及对齐要求</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p516mcpsimp"><a name="p516mcpsimp"></a><a name="p516mcpsimp"></a>1、最小支持：4x4。</p>
<p xml:lang="zh-CN" id="p517mcpsimp"><a name="p517mcpsimp"></a><a name="p517mcpsimp"></a>2、最大支持：16384x8192。</p>
<p xml:lang="zh-CN" id="p518mcpsimp"><a name="p518mcpsimp"></a><a name="p518mcpsimp"></a>3、宽度和高度均为2像素对齐，stride 16对齐。</p>
</td>
</tr>
<tr id="row519mcpsimp"><td class="cellrowborder" valign="top" width="32%" headers="mcps1.2.3.1.1 "><p xml:lang="zh-CN" id="p521mcpsimp"><a name="p521mcpsimp"></a><a name="p521mcpsimp"></a>缩放能力</p>
</td>
<td class="cellrowborder" valign="top" width="68%" headers="mcps1.2.3.1.2 "><p xml:lang="zh-CN" id="p523mcpsimp"><a name="p523mcpsimp"></a><a name="p523mcpsimp"></a>1、水平、垂直支持16倍放大。</p>
<p xml:lang="zh-CN" id="p524mcpsimp"><a name="p524mcpsimp"></a><a name="p524mcpsimp"></a>2、水平、垂直支持15倍缩小。</p>
<p id="p19988173118317"><a name="p19988173118317"></a><a name="p19988173118317"></a>3、当输入图像CROP后宽度大于3840且输出为非紧凑段压缩时，只支持14倍缩小。</p>
</td>
</tr>
</tbody>
</table>

## API参考<a name="ZH-CN_TOPIC_0000002408259222"></a>

该功能模块为用户提供以下MPI：

-   [ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)：启动一个job。
-   [ss\_mpi\_vgs\_add\_scale\_task](ss_mpi_vgs_add_scale_task.md)：往一个已经启动的job添加缩放task。
-   [ss\_mpi\_vgs\_add\_draw\_line\_task](ss_mpi_vgs_add_draw_line_task.md)：往一个已经启动的job添加批量画线task。
-   [ss\_mpi\_vgs\_add\_cover\_task](ss_mpi_vgs_add_cover_task.md)：往一个已经启动的job添加批量打Cover task。
-   [ss\_mpi\_vgs\_add\_osd\_task](ss_mpi_vgs_add_osd_task.md)：往一个已经启动的job添加批量打OSD task。
-   [ss\_mpi\_vgs\_add\_rotation\_task](ss_mpi_vgs_add_rotation_task.md)：往一个已经启动的job里添加旋转任务。
-   [ss\_mpi\_vgs\_add\_luma\_task](ss_mpi_vgs_add_luma_task.md)：往一个已经启动的job里添加批量获取亮度和任务。
-   [ss\_mpi\_vgs\_add\_mosaic\_task](ss_mpi_vgs_add_mosaic_task.md)：往一个已经启动的job里添加批量叠加Mosaic任务。
-   [ss\_mpi\_vgs\_add\_corner\_rect\_task](ss_mpi_vgs_add_corner_rect_task.md)：往一个已经启动的job里添加批量Corner\_rect任务。
-   [ss\_mpi\_vgs\_add\_stitch\_task](ss_mpi_vgs_add_stitch_task.md)：往一个已经启动的job里添加拼接任务。
-   [ss\_mpi\_vgs\_add\_online\_task](ss_mpi_vgs_add_online_task.md)：往一个已经启动的job里添加在线任务。
-   [ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)：提交一个job。
-   [ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)：取消一个job。














### ss\_mpi\_vgs\_begin\_job<a name="ZH-CN_TOPIC_0000002408259210"></a>

【描述】

启动一个job。

【语法】

```
td_s32 ss_mpi_vgs_begin_job(ot_vgs_handle *handle);
```

【参数】

<a name="table559mcpsimp"></a>
<table><thead align="left"><tr id="row565mcpsimp"><th class="cellrowborder" valign="top" width="20%" id="mcps1.1.4.1.1"><p id="p567mcpsimp"><a name="p567mcpsimp"></a><a name="p567mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="64%" id="mcps1.1.4.1.2"><p id="p569mcpsimp"><a name="p569mcpsimp"></a><a name="p569mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16%" id="mcps1.1.4.1.3"><p id="p571mcpsimp"><a name="p571mcpsimp"></a><a name="p571mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row573mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.1 "><p id="p575mcpsimp"><a name="p575mcpsimp"></a><a name="p575mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.4.1.2 "><p id="p577mcpsimp"><a name="p577mcpsimp"></a><a name="p577mcpsimp"></a>用以返回HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p579mcpsimp"><a name="p579mcpsimp"></a><a name="p579mcpsimp"></a>输出</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table581mcpsimp"></a>
<table><thead align="left"><tr id="row586mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p588mcpsimp"><a name="p588mcpsimp"></a><a name="p588mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p590mcpsimp"><a name="p590mcpsimp"></a><a name="p590mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row592mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p594mcpsimp"><a name="p594mcpsimp"></a><a name="p594mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p596mcpsimp"><a name="p596mcpsimp"></a><a name="p596mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row597mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p599mcpsimp"><a name="p599mcpsimp"></a><a name="p599mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p601mcpsimp"><a name="p601mcpsimp"></a><a name="p601mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   可一次启动多个job，但必须判断ss\_mpi\_vgs\_begin\_job函数返回成功后才能使用handle返回的HANDLE。
-   handle不能为空指针或非法指针。

【举例】

```
td_s32 ret = TD_SUCCESS;
ot_vgs_handle handle;
ot_vgs_task_attr task_attr;
 
ret = ss_mpi_vgs_begin_job(&handle);
if (ret != TD_SUCCESS) {
    VGS_ERROR_PROCESS(ret);
}
 
ret = ss_mpi_vgs_add_scale_task(handle, &task_attr, OT_VGS_SCALE_COEF_NORM);
if (ret != TD_SUCCESS){
    ss_mpi_vgs_cancel_job(handle);
    VGS_ERROR_PROCESS(ret);
}
 
ret = ss_mpi_vgs_end_job(handle);
if (ret != TD_SUCCESS){
    ss_mpi_vgs_cancel_job(handle);    
    VGS_ERROR_PROCESS(ret);
}
```

### ss\_mpi\_vgs\_add\_scale\_task<a name="ZH-CN_TOPIC_0000002408099286"></a>

【描述】

往一个已经启动的job里添加缩放task。

【语法】

```
td_s32 ss_mpi_vgs_add_scale_task(ot_vgs_handle handle, const ot_vgs_task_attr *task, ot_vgs_scale_coef_mode mode);
```

【参数】

<a name="table644mcpsimp"></a>
<table><thead align="left"><tr id="row650mcpsimp"><th class="cellrowborder" valign="top" width="15%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p652mcpsimp"><a name="p652mcpsimp"></a><a name="p652mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="69%" id="mcps1.1.4.1.2"><p id="p654mcpsimp"><a name="p654mcpsimp"></a><a name="p654mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16%" id="mcps1.1.4.1.3"><p id="p656mcpsimp"><a name="p656mcpsimp"></a><a name="p656mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row658mcpsimp"><td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.1 "><p id="p660mcpsimp"><a name="p660mcpsimp"></a><a name="p660mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="69%" headers="mcps1.1.4.1.2 "><p id="p662mcpsimp"><a name="p662mcpsimp"></a><a name="p662mcpsimp"></a>表示一个已经启动的job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p664mcpsimp"><a name="p664mcpsimp"></a><a name="p664mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row665mcpsimp"><td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.1 "><p id="p667mcpsimp"><a name="p667mcpsimp"></a><a name="p667mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="69%" headers="mcps1.1.4.1.2 "><p id="p669mcpsimp"><a name="p669mcpsimp"></a><a name="p669mcpsimp"></a>VGS task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p671mcpsimp"><a name="p671mcpsimp"></a><a name="p671mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row672mcpsimp"><td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.1 "><p xml:lang="sv-SE" id="p674mcpsimp"><a name="p674mcpsimp"></a><a name="p674mcpsimp"></a>mode</p>
</td>
<td class="cellrowborder" valign="top" width="69%" headers="mcps1.1.4.1.2 "><p id="p676mcpsimp"><a name="p676mcpsimp"></a><a name="p676mcpsimp"></a>缩放系数模式，可选择普通、2阶、4阶、6阶、8阶缩放系数。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p678mcpsimp"><a name="p678mcpsimp"></a><a name="p678mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table680mcpsimp"></a>
<table><thead align="left"><tr id="row685mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p687mcpsimp"><a name="p687mcpsimp"></a><a name="p687mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p689mcpsimp"><a name="p689mcpsimp"></a><a name="p689mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row691mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p693mcpsimp"><a name="p693mcpsimp"></a><a name="p693mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p695mcpsimp"><a name="p695mcpsimp"></a><a name="p695mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row696mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p698mcpsimp"><a name="p698mcpsimp"></a><a name="p698mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p700mcpsimp"><a name="p700mcpsimp"></a><a name="p700mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经启动的job。
-   task属性必须满足VGS的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   缩放任务比较灵活，不限制用户输入输出是否使用同一块VB。使用同一块VB时，建议只做非压缩图像的缩小任务，否则可能会导致图像异常。
-   支持非VB内存的物理地址，用户只需配置正确的物理地址即可，无需配置PoolId和虚拟地址，但用户需要保证物理连续的内存大小足够。
-   只支持普通系数。
-   SS528V100/SS625V100/SS524V100/SS522V101 输入宽度大于2688时，不支持行解压和紧凑段解压，也不支持紧凑段压缩或行压缩输出；输出宽度大于3072时，不支持紧凑段压缩输出。
-   SS928V100 输入宽度大于4096时，不支持紧凑段解压输入，也不支持紧凑段压缩输出。输出宽度大于4096时，不支持紧凑段压缩输出。
-   SS928V100 当宽\(高\)缩小倍数大于15时，输入宽\(高\)需4像素对齐。
-   SS626V100 输入宽度大于3072时，不支持紧凑段解压输入，输入宽度大于3840时，不支持行解压输入；输出宽度大于3072时，不支持紧凑段压缩输出。

【举例】

请参见[ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)的举例。

### ss\_mpi\_vgs\_add\_draw\_line\_task<a name="ZH-CN_TOPIC_0000002441658621"></a>

【描述】

往一个已经启动的job里添加批量画线task。

【语法】

```
td_s32 ss_mpi_vgs_add_draw_line_task(ot_vgs_handle handle, const ot_vgs_task_attr *task, const ot_vgs_line line[], td_u32 array_size);
```

【参数】

<a name="table735mcpsimp"></a>
<table><thead align="left"><tr id="row741mcpsimp"><th class="cellrowborder" valign="top" width="23%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p743mcpsimp"><a name="p743mcpsimp"></a><a name="p743mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="56.99999999999999%" id="mcps1.1.4.1.2"><p id="p745mcpsimp"><a name="p745mcpsimp"></a><a name="p745mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="20%" id="mcps1.1.4.1.3"><p id="p747mcpsimp"><a name="p747mcpsimp"></a><a name="p747mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row749mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p751mcpsimp"><a name="p751mcpsimp"></a><a name="p751mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p753mcpsimp"><a name="p753mcpsimp"></a><a name="p753mcpsimp"></a>表示一个已启动job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p755mcpsimp"><a name="p755mcpsimp"></a><a name="p755mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row756mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p758mcpsimp"><a name="p758mcpsimp"></a><a name="p758mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p760mcpsimp"><a name="p760mcpsimp"></a><a name="p760mcpsimp"></a>VGS task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p762mcpsimp"><a name="p762mcpsimp"></a><a name="p762mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row763mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p765mcpsimp"><a name="p765mcpsimp"></a><a name="p765mcpsimp"></a>line</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p767mcpsimp"><a name="p767mcpsimp"></a><a name="p767mcpsimp"></a>VGS画线属性配置结构体数组。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p769mcpsimp"><a name="p769mcpsimp"></a><a name="p769mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row770mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p xml:lang="sv-SE" id="p772mcpsimp"><a name="p772mcpsimp"></a><a name="p772mcpsimp"></a>array_size</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p774mcpsimp"><a name="p774mcpsimp"></a><a name="p774mcpsimp"></a>VGS画线数目，范围：[1, 100]</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p776mcpsimp"><a name="p776mcpsimp"></a><a name="p776mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table778mcpsimp"></a>
<table><thead align="left"><tr id="row783mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p785mcpsimp"><a name="p785mcpsimp"></a><a name="p785mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p787mcpsimp"><a name="p787mcpsimp"></a><a name="p787mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row789mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p791mcpsimp"><a name="p791mcpsimp"></a><a name="p791mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p793mcpsimp"><a name="p793mcpsimp"></a><a name="p793mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row794mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p796mcpsimp"><a name="p796mcpsimp"></a><a name="p796mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p798mcpsimp"><a name="p798mcpsimp"></a><a name="p798mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经启动的job。
-   task属性必须满足VGS的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   做批量画线任务时，输入输出压缩类型、像素格式保持不变。压缩类型不是紧凑段压缩时，输入输出图像为同一块buffer。压缩类型为紧凑段压缩时，输入输出图像必须使用不同的buffer，而且一次只能画一个。
-   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100如果是压缩图像输入，只支持画横线和竖线。压缩图像输入，画线功能实际上是由Cover功能实现，因此效果和非压缩图像效果略有不同。
-   支持非VB内存的物理地址，用户只需配置正确的物理地址即可，无需配置PoolId和虚拟地址，但用户需要保证物理连续的内存大小足够。
-   只支持linear格式输入。
-   SS528V100/SS625V100/SS524V100/SS522V101 不支持亮度单分量像素格式。
-   SS528V100/SS625V100/SS524V100/SS522V101 输入宽度大于2688时，不支持行解压和紧凑段解压，也不支持紧凑段压缩或行压缩输出；输出宽度大于3072时，不支持紧凑段压缩输出。
-   SS928V100 输入宽度大于4096时，不支持紧凑段解压输入，也不支持紧凑段压缩输出。
-   SS626V100输入宽度大于3072时，不支持紧凑段解压输入，输入宽度大于3840时，不支持行解压输入；输出宽度大于3072时，不支持紧凑段压缩输出。

【举例】

请参见  [ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)的举例。

### ss\_mpi\_vgs\_add\_cover\_task<a name="ZH-CN_TOPIC_0000002441698465"></a>

【描述】

往一个已经启动的job里添加批量Cover task。

【语法】

```
td_s32 ss_mpi_vgs_add_cover_task(ot_vgs_handle handle, const ot_vgs_task_attr *task, const ot_cover cover[], td_u32 array_size);
```

【参数】

<a name="table834mcpsimp"></a>
<table><thead align="left"><tr id="row840mcpsimp"><th class="cellrowborder" valign="top" width="23%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p842mcpsimp"><a name="p842mcpsimp"></a><a name="p842mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="56.99999999999999%" id="mcps1.1.4.1.2"><p id="p844mcpsimp"><a name="p844mcpsimp"></a><a name="p844mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="20%" id="mcps1.1.4.1.3"><p id="p846mcpsimp"><a name="p846mcpsimp"></a><a name="p846mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row847mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p849mcpsimp"><a name="p849mcpsimp"></a><a name="p849mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p851mcpsimp"><a name="p851mcpsimp"></a><a name="p851mcpsimp"></a>表示一个已启动job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p853mcpsimp"><a name="p853mcpsimp"></a><a name="p853mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row854mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p856mcpsimp"><a name="p856mcpsimp"></a><a name="p856mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p858mcpsimp"><a name="p858mcpsimp"></a><a name="p858mcpsimp"></a>VGS task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p860mcpsimp"><a name="p860mcpsimp"></a><a name="p860mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row861mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p863mcpsimp"><a name="p863mcpsimp"></a><a name="p863mcpsimp"></a>cover</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p865mcpsimp"><a name="p865mcpsimp"></a><a name="p865mcpsimp"></a>Cover属性配置结构体数组。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p867mcpsimp"><a name="p867mcpsimp"></a><a name="p867mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row868mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p870mcpsimp"><a name="p870mcpsimp"></a><a name="p870mcpsimp"></a>array_size</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p872mcpsimp"><a name="p872mcpsimp"></a><a name="p872mcpsimp"></a>Cover的数目，范围：[1, 100]</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p874mcpsimp"><a name="p874mcpsimp"></a><a name="p874mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table876mcpsimp"></a>
<table><thead align="left"><tr id="row881mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p883mcpsimp"><a name="p883mcpsimp"></a><a name="p883mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p885mcpsimp"><a name="p885mcpsimp"></a><a name="p885mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row887mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p889mcpsimp"><a name="p889mcpsimp"></a><a name="p889mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p891mcpsimp"><a name="p891mcpsimp"></a><a name="p891mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row892mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p894mcpsimp"><a name="p894mcpsimp"></a><a name="p894mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p896mcpsimp"><a name="p896mcpsimp"></a><a name="p896mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经启动的job。
-   task属性必须满足VGS的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   做批量Cover任务时，输入输出压缩类型、像素格式保持不变。压缩类型不是紧凑段压缩时，输入输出图像为同一块buffer。压缩类型为紧凑段压缩时,输入输出图像必须使用不同的buffer，而且一次只能画一个。
-   支持非VB内存的物理地址，用户只需配置正确的物理地址即可，无需配置PoolId和虚拟地址，但用户需要保证物理连续的内存大小足够。
-   Cover起始坐标及宽高2对齐。坐标及宽高取值范围：

    水平X：\[-16384,16382\]，垂直Y：\[-8192,8190\]，宽：\[2,16384\]，高：\[2,8192\]

-   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100只支持实心矩形和空心任意四边形。空心任意四边形4个点需要顺序设置\(顺时针或逆时针\)。
-   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100空心四边形的边框范围为\[2,14\]，SS928V100边框范围为\[2,16\]。边框2对齐。
-   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100不支持压缩图像画空心任意四边形，支持压缩图像画空心矩形框。
-   SS528V100/SS625V100/SS524V100/SS522V101输入宽度大于2688时，不支持行解压和紧凑段解压，也不支持紧凑段压缩或行压缩输出；输出宽度大于3072时，不支持紧凑段压缩输出。
-   SS928V100输入宽度大于4096时，不支持紧凑段解压输入，也不支持紧凑段压缩输出。
-   SS626V100输入宽度大于3072时，不支持紧凑段解压输入，输入宽度大于3840时，不支持行解压输入；输出宽度大于3072时，不支持紧凑段压缩输出。
-   SS528V100/SS625V100/SS524V100/SS522V101 任意四边形cover输入输出图像不支持单分量。
-   只支持linear格式。

【举例】

请参见[ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)的举例。

### ss\_mpi\_vgs\_add\_osd\_task<a name="ZH-CN_TOPIC_0000002408259206"></a>

【描述】

往一个已经启动的job里添加打批量OSD task。

【语法】

```
td_s32 ss_mpi_vgs_add_osd_task(ot_vgs_handle handle, const ot_vgs_task_attr *task, const ot_vgs_osd osd[], td_u32 array_size);
```

【参数】

<a name="table937mcpsimp"></a>
<table><thead align="left"><tr id="row943mcpsimp"><th class="cellrowborder" valign="top" width="21.21%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p945mcpsimp"><a name="p945mcpsimp"></a><a name="p945mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="58.589999999999996%" id="mcps1.1.4.1.2"><p id="p947mcpsimp"><a name="p947mcpsimp"></a><a name="p947mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="20.200000000000003%" id="mcps1.1.4.1.3"><p id="p949mcpsimp"><a name="p949mcpsimp"></a><a name="p949mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row951mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p953mcpsimp"><a name="p953mcpsimp"></a><a name="p953mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p955mcpsimp"><a name="p955mcpsimp"></a><a name="p955mcpsimp"></a>表示一个已启动job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p957mcpsimp"><a name="p957mcpsimp"></a><a name="p957mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row958mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p960mcpsimp"><a name="p960mcpsimp"></a><a name="p960mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p962mcpsimp"><a name="p962mcpsimp"></a><a name="p962mcpsimp"></a>VGS task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p964mcpsimp"><a name="p964mcpsimp"></a><a name="p964mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row965mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p967mcpsimp"><a name="p967mcpsimp"></a><a name="p967mcpsimp"></a>osd</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p969mcpsimp"><a name="p969mcpsimp"></a><a name="p969mcpsimp"></a>OSD属性配置结构体数组</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p971mcpsimp"><a name="p971mcpsimp"></a><a name="p971mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row972mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p xml:lang="sv-SE" id="p974mcpsimp"><a name="p974mcpsimp"></a><a name="p974mcpsimp"></a>array_size</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p976mcpsimp"><a name="p976mcpsimp"></a><a name="p976mcpsimp"></a>OSD的数目，范围: [1, 100]</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p978mcpsimp"><a name="p978mcpsimp"></a><a name="p978mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table980mcpsimp"></a>
<table><thead align="left"><tr id="row985mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p987mcpsimp"><a name="p987mcpsimp"></a><a name="p987mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p989mcpsimp"><a name="p989mcpsimp"></a><a name="p989mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row991mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p993mcpsimp"><a name="p993mcpsimp"></a><a name="p993mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p995mcpsimp"><a name="p995mcpsimp"></a><a name="p995mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row996mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p998mcpsimp"><a name="p998mcpsimp"></a><a name="p998mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1000mcpsimp"><a name="p1000mcpsimp"></a><a name="p1000mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经启动的job。
-   task属性必须满足VGS的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   做批量OSD任务时，输入输出压缩类型、像素格式保持不变。压缩类型不是紧凑段压缩时，输入输出图像为同一块buffer。压缩类型为紧凑段压缩时，输入输出图像必须使用不同的buffer，而且一次只能画一个。
-   支持非VB内存的物理地址，用户只需配置正确的物理地址即可，无需配置PoolId和虚拟地址，但用户需要保证物理连续的内存大小足够。
-   SS528V100/SS625V100/SS524V100/SS522V101输入宽度大于2688时，不支持行解压和紧凑段解压，也不支持紧凑段压缩或行压缩输出；输出宽度大于3072时，不支持紧凑段压缩输出。
-   SS928V100 输入宽度大于4096时，不支持紧凑段解压输入，也不支持紧凑段压缩输出。
-   SS626V100输入宽度大于3072时，不支持紧凑段解压输入，输入宽度大于3840时，不支持行解压输入；输出宽度大于3072时，不支持紧凑段压缩输出。
-   只支持linear格式。

【举例】

请参见  [ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)的举例。

### ss\_mpi\_vgs\_add\_rotation\_task<a name="ZH-CN_TOPIC_0000002441698481"></a>

【描述】

往一个已经启动的job里添加旋转任务。

【语法】

```
td_s32 ss_mpi_vgs_add_rotation_task(ot_vgs_handle handle, const ot_vgs_task_attr *task, ot_rotation angle);
```

【参数】

<a name="table1033mcpsimp"></a>
<table><thead align="left"><tr id="row1039mcpsimp"><th class="cellrowborder" valign="top" width="21.21%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p1041mcpsimp"><a name="p1041mcpsimp"></a><a name="p1041mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="58.589999999999996%" id="mcps1.1.4.1.2"><p id="p1043mcpsimp"><a name="p1043mcpsimp"></a><a name="p1043mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="20.200000000000003%" id="mcps1.1.4.1.3"><p id="p1045mcpsimp"><a name="p1045mcpsimp"></a><a name="p1045mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1047mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p1049mcpsimp"><a name="p1049mcpsimp"></a><a name="p1049mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p1051mcpsimp"><a name="p1051mcpsimp"></a><a name="p1051mcpsimp"></a>表示一个已创建job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p1053mcpsimp"><a name="p1053mcpsimp"></a><a name="p1053mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1054mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p1056mcpsimp"><a name="p1056mcpsimp"></a><a name="p1056mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p1058mcpsimp"><a name="p1058mcpsimp"></a><a name="p1058mcpsimp"></a>VGS task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p1060mcpsimp"><a name="p1060mcpsimp"></a><a name="p1060mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1061mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p xml:lang="sv-SE" id="p1063mcpsimp"><a name="p1063mcpsimp"></a><a name="p1063mcpsimp"></a>angle</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p1065mcpsimp"><a name="p1065mcpsimp"></a><a name="p1065mcpsimp"></a>旋转角度。</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p1067mcpsimp"><a name="p1067mcpsimp"></a><a name="p1067mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1069mcpsimp"></a>
<table><thead align="left"><tr id="row1074mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1076mcpsimp"><a name="p1076mcpsimp"></a><a name="p1076mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1078mcpsimp"><a name="p1078mcpsimp"></a><a name="p1078mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1080mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1082mcpsimp"><a name="p1082mcpsimp"></a><a name="p1082mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1084mcpsimp"><a name="p1084mcpsimp"></a><a name="p1084mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1085mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1087mcpsimp"><a name="p1087mcpsimp"></a><a name="p1087mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1089mcpsimp"><a name="p1089mcpsimp"></a><a name="p1089mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经创建的job。
-   task属性必须满足VGS的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   做旋转任务时，需要申请输入图像buffer和输出图像buffer。
-   旋转不支持压缩写出。
-   旋转的输入输出像素格式只支持semi-planar 420、单分量（Y），且不支持像素格式转换。
-   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100输入视频格式只支持linear、TILE，输出视频格式只支持linear。SS928V100旋转仅支持linear格式输入和linear格式输出。
-   支持非VB内存的物理地址，用户只需配置正确的物理地址即可，无需配置PoolId和虚拟地址，但用户需要保证物理连续的内存大小足够。
-   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100的旋转不支持行解压和紧凑段解压。
-   SS928V100的旋转输入仅支持非紧凑段压缩和非压缩。

【举例】

请参见  [ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)的举例。

### ss\_mpi\_vgs\_add\_luma\_task<a name="ZH-CN_TOPIC_0000002441698473"></a>

【描述】

往一个已经启动的job里批量添加获取亮度和任务。

【语法】

```
td_s32 ss_mpi_vgs_add_luma_task(ot_vgs_handle handle, const ot_vgs_task_attr *task, const ot_rect luma_rect[], td_u32 array_size, td_u64 luma_data[]);
```

【参数】

<a name="table1121mcpsimp"></a>
<table><thead align="left"><tr id="row1127mcpsimp"><th class="cellrowborder" valign="top" width="21.21%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p1129mcpsimp"><a name="p1129mcpsimp"></a><a name="p1129mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="58.589999999999996%" id="mcps1.1.4.1.2"><p id="p1131mcpsimp"><a name="p1131mcpsimp"></a><a name="p1131mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="20.200000000000003%" id="mcps1.1.4.1.3"><p id="p1133mcpsimp"><a name="p1133mcpsimp"></a><a name="p1133mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1135mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p1137mcpsimp"><a name="p1137mcpsimp"></a><a name="p1137mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p1139mcpsimp"><a name="p1139mcpsimp"></a><a name="p1139mcpsimp"></a>表示一个已创建job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p1141mcpsimp"><a name="p1141mcpsimp"></a><a name="p1141mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1142mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p1144mcpsimp"><a name="p1144mcpsimp"></a><a name="p1144mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p1146mcpsimp"><a name="p1146mcpsimp"></a><a name="p1146mcpsimp"></a>VGS task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p1148mcpsimp"><a name="p1148mcpsimp"></a><a name="p1148mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1149mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p1151mcpsimp"><a name="p1151mcpsimp"></a><a name="p1151mcpsimp"></a>luma_rect</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p1153mcpsimp"><a name="p1153mcpsimp"></a><a name="p1153mcpsimp"></a>亮度和区域数组首地址。</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p1155mcpsimp"><a name="p1155mcpsimp"></a><a name="p1155mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1156mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p1158mcpsimp"><a name="p1158mcpsimp"></a><a name="p1158mcpsimp"></a>array_size</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p1160mcpsimp"><a name="p1160mcpsimp"></a><a name="p1160mcpsimp"></a>亮度和区域数量，范围: [1, 100]</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p1162mcpsimp"><a name="p1162mcpsimp"></a><a name="p1162mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1163mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p1165mcpsimp"><a name="p1165mcpsimp"></a><a name="p1165mcpsimp"></a>luma_data</p>
</td>
<td class="cellrowborder" valign="top" width="58.589999999999996%" headers="mcps1.1.4.1.2 "><p id="p1167mcpsimp"><a name="p1167mcpsimp"></a><a name="p1167mcpsimp"></a>亮度和写出数组首地址（用户态虚拟地址）</p>
</td>
<td class="cellrowborder" valign="top" width="20.200000000000003%" headers="mcps1.1.4.1.3 "><p id="p1169mcpsimp"><a name="p1169mcpsimp"></a><a name="p1169mcpsimp"></a>输出</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1171mcpsimp"></a>
<table><thead align="left"><tr id="row1176mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1178mcpsimp"><a name="p1178mcpsimp"></a><a name="p1178mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1180mcpsimp"><a name="p1180mcpsimp"></a><a name="p1180mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1182mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1184mcpsimp"><a name="p1184mcpsimp"></a><a name="p1184mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1186mcpsimp"><a name="p1186mcpsimp"></a><a name="p1186mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1187mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1189mcpsimp"><a name="p1189mcpsimp"></a><a name="p1189mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1191mcpsimp"><a name="p1191mcpsimp"></a><a name="p1191mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经创建的job。
-   task属性必须满足VGS的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   做获取亮度和任务时，只需要申请输入图像buffer。
-   VGS只检查task的输入属性，不检查task的输出属性。
-   亮度和区域必须在输入图像内，且起始点及宽高均要求2像素对齐。
-   支持非VB内存的物理地址，用户只需配置正确的物理地址即可，无需配置PoolId和虚拟地址，但用户需要保证物理连续的内存大小足够。
-   SS528V100/SS625V100/SS524V100/SS522V101 输入宽度大于2688时，不支持行解压和紧凑段解压；输出宽度大于3072时，不支持紧凑段压缩输出。
-   SS928V100 输入宽度大于4096时，不支持紧凑段解压输入。
-   SS928V100 亮度和区域大小最小为2x2，最大为8192x8192。
-   SS626V100 输入宽度大于3072时，不支持紧凑段解压输入，输入宽度大于3840时，不支持行解压输入。
-   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100 亮度和区域大小最小为2x2，最大为16384x8192。

【举例】

请参见  [ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)的举例。

### ss\_mpi\_vgs\_add\_mosaic\_task<a name="ZH-CN_TOPIC_0000002441658657"></a>

【描述】

往一个已经启动的job里添加批量Mosaic task。

【语法】

```
td_s32 ss_mpi_vgs_add_mosaic_task(ot_vgs_handle handle, const ot_vgs_task_attr *task, const ot_mosaic mosaic[], td_u32 array_size);
```

【参数】

<a name="table1226mcpsimp"></a>
<table><thead align="left"><tr id="row1232mcpsimp"><th class="cellrowborder" valign="top" width="23%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p1234mcpsimp"><a name="p1234mcpsimp"></a><a name="p1234mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="56.99999999999999%" id="mcps1.1.4.1.2"><p id="p1236mcpsimp"><a name="p1236mcpsimp"></a><a name="p1236mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="20%" id="mcps1.1.4.1.3"><p id="p1238mcpsimp"><a name="p1238mcpsimp"></a><a name="p1238mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1239mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1241mcpsimp"><a name="p1241mcpsimp"></a><a name="p1241mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1243mcpsimp"><a name="p1243mcpsimp"></a><a name="p1243mcpsimp"></a>表示一个已启动job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1245mcpsimp"><a name="p1245mcpsimp"></a><a name="p1245mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1246mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1248mcpsimp"><a name="p1248mcpsimp"></a><a name="p1248mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1250mcpsimp"><a name="p1250mcpsimp"></a><a name="p1250mcpsimp"></a>VGS task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1252mcpsimp"><a name="p1252mcpsimp"></a><a name="p1252mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1253mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1255mcpsimp"><a name="p1255mcpsimp"></a><a name="p1255mcpsimp"></a>mosaic</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1257mcpsimp"><a name="p1257mcpsimp"></a><a name="p1257mcpsimp"></a>Mosaic属性配置结构体数组。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1259mcpsimp"><a name="p1259mcpsimp"></a><a name="p1259mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1260mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1262mcpsimp"><a name="p1262mcpsimp"></a><a name="p1262mcpsimp"></a>array_size</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1264mcpsimp"><a name="p1264mcpsimp"></a><a name="p1264mcpsimp"></a>Mosaic的数目，范围：[1, 100]</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1266mcpsimp"><a name="p1266mcpsimp"></a><a name="p1266mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1268mcpsimp"></a>
<table><thead align="left"><tr id="row1273mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1275mcpsimp"><a name="p1275mcpsimp"></a><a name="p1275mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1277mcpsimp"><a name="p1277mcpsimp"></a><a name="p1277mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1279mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1281mcpsimp"><a name="p1281mcpsimp"></a><a name="p1281mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1283mcpsimp"><a name="p1283mcpsimp"></a><a name="p1283mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1284mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1286mcpsimp"><a name="p1286mcpsimp"></a><a name="p1286mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1288mcpsimp"><a name="p1288mcpsimp"></a><a name="p1288mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经启动的job。
-   task属性必须满足VGS的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   做批量Mosaic任务时，输入输出压缩类型、像素格式保持不变。压缩类型不是紧凑段压缩时，输入输出图像为同一块buffer。压缩类型为紧凑段压缩时,输入输出图像必须使用不同的buffer，而且一次只能画一个。
-   支持非VB内存的物理地址，用户只需配置正确的物理地址即可，无需配置PoolId和虚拟地址，但用户需要保证物理连续的内存大小足够。
-   Mosaic起始坐标及宽4对齐，高2对齐。坐标及宽高取值范围：水平X:\[-8192,16380\]，垂直Y:\[-8192,8190\]，宽:\[8,8192\]，高:\[8,8192\]。

    SS928V100只支持宽：\[8, 8192\]

-   SS528V100/SS625V100/SS524V100/ SS522V101只支持8x8，16x16，32x32 Mosaic Block。
-   SS928V100只支持16x16，32x32，64x64 Mosaic Block。
-   SS626V100支持8x8，16x16，32x32，64x64 Mosaic Block。
-   SS528V100/SS625V100/SS524V100/SS522V101 输入宽度大于2688时，不支持行解压和紧凑段解压，也不支持紧凑段压缩或行压缩输出；输出宽度大于3072时，不支持紧凑段压缩输出。
-   SS928V100 输入宽度大于4096时，不支持紧凑段解压输入。
-   SS626V100输入宽度大于3072时，不支持紧凑段解压输入，输入宽度大于3840时，不支持行解压输入；输出宽度大于3072时，不支持紧凑段压缩输出。
-   只支持linear格式输入。

【举例】

请参见  [ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)的举例。

### ss\_mpi\_vgs\_add\_corner\_rect\_task<a name="ZH-CN_TOPIC_0000002441658641"></a>

【描述】

往一个已经启动的job里添加批量Corner\_rect task。

【语法】

```
td_s32 ss_mpi_vgs_add_corner_rect_task(ot_vgs_handle handle, const ot_vgs_task_attr*task, const ot_corner_rect corner_rect[], const ot_corner_rect_attr *corner_rect_attr, td_u32 array_size);
```

【参数】

<a name="table1323mcpsimp"></a>
<table><thead align="left"><tr id="row1329mcpsimp"><th class="cellrowborder" valign="top" width="23%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p1331mcpsimp"><a name="p1331mcpsimp"></a><a name="p1331mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="56.99999999999999%" id="mcps1.1.4.1.2"><p id="p1333mcpsimp"><a name="p1333mcpsimp"></a><a name="p1333mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="20%" id="mcps1.1.4.1.3"><p id="p1335mcpsimp"><a name="p1335mcpsimp"></a><a name="p1335mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1337mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1339mcpsimp"><a name="p1339mcpsimp"></a><a name="p1339mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1341mcpsimp"><a name="p1341mcpsimp"></a><a name="p1341mcpsimp"></a>表示一个已启动job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1343mcpsimp"><a name="p1343mcpsimp"></a><a name="p1343mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1344mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1346mcpsimp"><a name="p1346mcpsimp"></a><a name="p1346mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1348mcpsimp"><a name="p1348mcpsimp"></a><a name="p1348mcpsimp"></a>VGS task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1350mcpsimp"><a name="p1350mcpsimp"></a><a name="p1350mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1351mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1353mcpsimp"><a name="p1353mcpsimp"></a><a name="p1353mcpsimp"></a>corner_rect</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1355mcpsimp"><a name="p1355mcpsimp"></a><a name="p1355mcpsimp"></a>Corner_rect 属性配置结构体数组。</p>
<p id="p1356mcpsimp"><a name="p1356mcpsimp"></a><a name="p1356mcpsimp"></a>ot_corner_rect 请参考“系统控制”章节。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1358mcpsimp"><a name="p1358mcpsimp"></a><a name="p1358mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1359mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1361mcpsimp"><a name="p1361mcpsimp"></a><a name="p1361mcpsimp"></a>corner_rect_attr</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1363mcpsimp"><a name="p1363mcpsimp"></a><a name="p1363mcpsimp"></a>Corner_rect公共属性。</p>
<p id="p1364mcpsimp"><a name="p1364mcpsimp"></a><a name="p1364mcpsimp"></a>ot_corner_rect_attr请参考“系统控制”章节。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1366mcpsimp"><a name="p1366mcpsimp"></a><a name="p1366mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1367mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1369mcpsimp"><a name="p1369mcpsimp"></a><a name="p1369mcpsimp"></a>array_size</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1371mcpsimp"><a name="p1371mcpsimp"></a><a name="p1371mcpsimp"></a>Corner_rect的数目，范围：[1, 100]</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1373mcpsimp"><a name="p1373mcpsimp"></a><a name="p1373mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1375mcpsimp"></a>
<table><thead align="left"><tr id="row1380mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1382mcpsimp"><a name="p1382mcpsimp"></a><a name="p1382mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1384mcpsimp"><a name="p1384mcpsimp"></a><a name="p1384mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1386mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1388mcpsimp"><a name="p1388mcpsimp"></a><a name="p1388mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1390mcpsimp"><a name="p1390mcpsimp"></a><a name="p1390mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1391mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1393mcpsimp"><a name="p1393mcpsimp"></a><a name="p1393mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1395mcpsimp"><a name="p1395mcpsimp"></a><a name="p1395mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经启动的job。
-   task属性必须满足VGS的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   做批量Corner\_rect任务时，输入输出压缩类型、像素格式保持不变。压缩类型不是紧凑段压缩时，输入输出图像为同一块buffer。压缩类型为紧凑段压缩时,输入输出图像必须使用不同的buffer，而且一次只能画一个。

    支持非VB内存的物理地址，用户只需配置正确的物理地址即可，无需配置PoolId和虚拟地址，但用户需要保证物理连续的内存大小足够。

-   Corner\_rect的类型可分为实线框\(OT\_CORNER\_RECT\_TYPE\_FULL\_LINE\)或角框\(OT\_CORNER\_RECT\_TYPE\_CORNER\)。
-   Corner\_rect起始坐标及宽高2对齐。坐标及宽高取值范围：

    水平X:\[0,16382\]，垂直Y:\[0,8190\]，宽:\[2,16384\]，高:\[2,8192\]。线宽范围为\[2,16\]，线宽2对齐。水平线长\(hor\_len\)不大于Corner\_rect的宽，竖直线长\(ver\_len\)不大于Corner\_rect的高。SS928V100只支持宽：\[2,8192\]

-   SS928V100在输入图像宽度大于4096时，水平线长\(hor\_len\)不能大于248。
-   SS928V100 输入宽度大于4096时，不支持紧凑段解压输入。
-   批量处理时，每个Corner\_rect的颜色、类型等属性\(corner\_rect\_attr\)都一样。
-   只支持linear格式。
-   仅SS928V100支持此接口。

【举例】

请参见[ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)的举例。

### ss\_mpi\_vgs\_add\_stitch\_task<a name="ZH-CN_TOPIC_0000002408099314"></a>

【描述】

往一个已经启动的job里添加拼接 task。

【语法】

```
td_s32 ss_mpi_vgs_add_stitch_task(ot_vgs_handle handle, const ot_vgs_stitch_task_attr *task, td_u32 pic_num);
```

【参数】

<a name="table1430mcpsimp"></a>
<table><thead align="left"><tr id="row1436mcpsimp"><th class="cellrowborder" valign="top" width="23%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p1438mcpsimp"><a name="p1438mcpsimp"></a><a name="p1438mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="56.99999999999999%" id="mcps1.1.4.1.2"><p id="p1440mcpsimp"><a name="p1440mcpsimp"></a><a name="p1440mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="20%" id="mcps1.1.4.1.3"><p id="p1442mcpsimp"><a name="p1442mcpsimp"></a><a name="p1442mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1443mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1445mcpsimp"><a name="p1445mcpsimp"></a><a name="p1445mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1447mcpsimp"><a name="p1447mcpsimp"></a><a name="p1447mcpsimp"></a>表示一个已启动job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1449mcpsimp"><a name="p1449mcpsimp"></a><a name="p1449mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1450mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1452mcpsimp"><a name="p1452mcpsimp"></a><a name="p1452mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1454mcpsimp"><a name="p1454mcpsimp"></a><a name="p1454mcpsimp"></a>VGS拼接 task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1456mcpsimp"><a name="p1456mcpsimp"></a><a name="p1456mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row1457mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.4.1.1 "><p id="p1459mcpsimp"><a name="p1459mcpsimp"></a><a name="p1459mcpsimp"></a>pic_num</p>
</td>
<td class="cellrowborder" valign="top" width="56.99999999999999%" headers="mcps1.1.4.1.2 "><p id="p1461mcpsimp"><a name="p1461mcpsimp"></a><a name="p1461mcpsimp"></a>拼接图像的数目，范围：[1, 4]</p>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.3 "><p id="p1463mcpsimp"><a name="p1463mcpsimp"></a><a name="p1463mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1465mcpsimp"></a>
<table><thead align="left"><tr id="row1470mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1472mcpsimp"><a name="p1472mcpsimp"></a><a name="p1472mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1474mcpsimp"><a name="p1474mcpsimp"></a><a name="p1474mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1476mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1478mcpsimp"><a name="p1478mcpsimp"></a><a name="p1478mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1480mcpsimp"><a name="p1480mcpsimp"></a><a name="p1480mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1481mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1483mcpsimp"><a name="p1483mcpsimp"></a><a name="p1483mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1485mcpsimp"><a name="p1485mcpsimp"></a><a name="p1485mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经启动的job。
-   task属性必须满足VGS的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   支持非VB内存的物理地址，用户只需配置正确的物理地址即可，无需配置PoolId和虚拟地址，但用户需要保证物理连续的内存大小足够。
-   做拼接任务时，各输入图像的压缩类型、像素格式，宽高大小需要一样。输出图像的宽度是各输入图像宽之和，输出图像高与输入图像高相同，不支持缩放。
-   不支持像素格式转换，即输出图像的像素格式需与输入图像的一致。
-   仅SS928V100支持此接口。
-   拼接输入图像宽高取值范围：宽:\[32,4096\]，高:\[32,8192\]
-   输入输出图像不支持紧凑段压缩。
-   只支持linear格式。

【举例】

请参见[ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)的举例。

### ss\_mpi\_vgs\_add\_online\_task<a name="ZH-CN_TOPIC_0000002441658637"></a>

【描述】

往一个已经启动的job里添加在线任务，叠加OSD/Cover/Mosaic/Corner\_rect、Crop、Mirror/Filp和缩放功能可以在同一个任务中处理。

【语法】

```
td_s32 ss_mpi_vgs_add_online_task(ot_vgs_handlehandle, const ot_vgs_task_attr*task, const ot_vgs_online*online);
```

【参数】

<a name="table644mcpsimp"></a>
<table><thead align="left"><tr id="row650mcpsimp"><th class="cellrowborder" valign="top" width="15%" id="mcps1.1.4.1.1"><p xml:lang="sv-SE" id="p652mcpsimp"><a name="p652mcpsimp"></a><a name="p652mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="69%" id="mcps1.1.4.1.2"><p id="p654mcpsimp"><a name="p654mcpsimp"></a><a name="p654mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16%" id="mcps1.1.4.1.3"><p id="p656mcpsimp"><a name="p656mcpsimp"></a><a name="p656mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row658mcpsimp"><td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.1 "><p id="p660mcpsimp"><a name="p660mcpsimp"></a><a name="p660mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="69%" headers="mcps1.1.4.1.2 "><p id="p662mcpsimp"><a name="p662mcpsimp"></a><a name="p662mcpsimp"></a>表示一个已经启动的job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p664mcpsimp"><a name="p664mcpsimp"></a><a name="p664mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row665mcpsimp"><td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.1 "><p id="p667mcpsimp"><a name="p667mcpsimp"></a><a name="p667mcpsimp"></a>task</p>
</td>
<td class="cellrowborder" valign="top" width="69%" headers="mcps1.1.4.1.2 "><p id="p669mcpsimp"><a name="p669mcpsimp"></a><a name="p669mcpsimp"></a>VGS task属性指针。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p671mcpsimp"><a name="p671mcpsimp"></a><a name="p671mcpsimp"></a>输入</p>
</td>
</tr>
<tr id="row672mcpsimp"><td class="cellrowborder" valign="top" width="15%" headers="mcps1.1.4.1.1 "><p id="p66292416497"><a name="p66292416497"></a><a name="p66292416497"></a>online</p>
</td>
<td class="cellrowborder" valign="top" width="69%" headers="mcps1.1.4.1.2 "><p id="p676mcpsimp"><a name="p676mcpsimp"></a><a name="p676mcpsimp"></a>在线任务属性。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p678mcpsimp"><a name="p678mcpsimp"></a><a name="p678mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table680mcpsimp"></a>
<table><thead align="left"><tr id="row685mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p687mcpsimp"><a name="p687mcpsimp"></a><a name="p687mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p689mcpsimp"><a name="p689mcpsimp"></a><a name="p689mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row691mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p693mcpsimp"><a name="p693mcpsimp"></a><a name="p693mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p695mcpsimp"><a name="p695mcpsimp"></a><a name="p695mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row696mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p698mcpsimp"><a name="p698mcpsimp"></a><a name="p698mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p700mcpsimp"><a name="p700mcpsimp"></a><a name="p700mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经启动的job。
-   task属性必须满足VGS的能力。
-   如果此接口返回失败，如不需再添加其他任务，可以调用[ss\_mpi\_vgs\_end\_job](ss_mpi_vgs_end_job.md)接口提交已经添加的task，否则必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。
-   不限制用户输入输出是否使用同一块VB。使用同一块VB时，建议只做非压缩图像的缩小任务，否则可能会导致图像异常。
-   当设置紧凑段压缩写出时，不支持mirror或flip。当设置行压缩写出时，不支持mirror。
-   支持非VB内存的物理地址，用户只需配置正确的物理地址即可，无需配置PoolId和虚拟地址，但用户需要保证物理连续的内存大小足够。
-   任务执行顺序为，Crop-\>Mosaic-\>Cover-\>Corner\_rect-\>OSD-\>Scale/Mirror/Flip。整个任务只占用一张图像的性能消耗。
-   Cover/Mosaic/Corner\_rect/OSD数量不要超过数组的大小。
-   所有Mosaic的块大小相同，以最后一个参数有效的Mosaic的块大小为准。
-   Crop时，宽高和坐标必须2对齐，裁剪区域宽高不能小于32，不能大于原图。
-   仅SS928V100/SS626V100支持此接口。
-   对于SS928V100，Cover的数量范围：OT\_COVER\_RECT类型最多8个，OT\_COVER\_QUAD类型最多1个。
-   对于SS626V100，Cover的数量范围：OT\_COVER\_RECT类型最多4个，不支持OT\_COVER\_QUAD类型。

【举例】

请参见[ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)的举例。

### ss\_mpi\_vgs\_end\_job<a name="ZH-CN_TOPIC_0000002441698497"></a>

【描述】

提交一个job。

【语法】

```
td_s32 ss_mpi_vgs_end_job(ot_vgs_handle handle);
```

【参数】

<a name="table1516mcpsimp"></a>
<table><thead align="left"><tr id="row1522mcpsimp"><th class="cellrowborder" valign="top" width="20%" id="mcps1.1.4.1.1"><p id="p1524mcpsimp"><a name="p1524mcpsimp"></a><a name="p1524mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="64%" id="mcps1.1.4.1.2"><p id="p1526mcpsimp"><a name="p1526mcpsimp"></a><a name="p1526mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16%" id="mcps1.1.4.1.3"><p id="p1528mcpsimp"><a name="p1528mcpsimp"></a><a name="p1528mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1530mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.1.4.1.1 "><p id="p1532mcpsimp"><a name="p1532mcpsimp"></a><a name="p1532mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="64%" headers="mcps1.1.4.1.2 "><p id="p1534mcpsimp"><a name="p1534mcpsimp"></a><a name="p1534mcpsimp"></a>表示一个已启动job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="16%" headers="mcps1.1.4.1.3 "><p id="p1536mcpsimp"><a name="p1536mcpsimp"></a><a name="p1536mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1538mcpsimp"></a>
<table><thead align="left"><tr id="row1543mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1545mcpsimp"><a name="p1545mcpsimp"></a><a name="p1545mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1547mcpsimp"><a name="p1547mcpsimp"></a><a name="p1547mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1549mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1551mcpsimp"><a name="p1551mcpsimp"></a><a name="p1551mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1553mcpsimp"><a name="p1553mcpsimp"></a><a name="p1553mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1554mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1556mcpsimp"><a name="p1556mcpsimp"></a><a name="p1556mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1558mcpsimp"><a name="p1558mcpsimp"></a><a name="p1558mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

-   handle标识的job必须是已经启动的job。
-   如果此接口返回失败，必须调用[ss\_mpi\_vgs\_cancel\_job](ss_mpi_vgs_cancel_job.md)接口取消掉handle标识的job。否则会导致handle标识的job不能再被循环利用。

【举例】

参见[ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)举例。

### ss\_mpi\_vgs\_cancel\_job<a name="ZH-CN_TOPIC_0000002408259218"></a>

【描述】

取消一个job。

【语法】

```
td_s32 ss_mpi_vgs_cancel_job(ot_vgs_handle handle);
```

【参数】

<a name="table1580mcpsimp"></a>
<table><thead align="left"><tr id="row1586mcpsimp"><th class="cellrowborder" valign="top" width="21.21%" id="mcps1.1.4.1.1"><p id="p1588mcpsimp"><a name="p1588mcpsimp"></a><a name="p1588mcpsimp"></a>参数名称</p>
</th>
<th class="cellrowborder" valign="top" width="62.629999999999995%" id="mcps1.1.4.1.2"><p id="p1590mcpsimp"><a name="p1590mcpsimp"></a><a name="p1590mcpsimp"></a>描述</p>
</th>
<th class="cellrowborder" valign="top" width="16.16%" id="mcps1.1.4.1.3"><p id="p1592mcpsimp"><a name="p1592mcpsimp"></a><a name="p1592mcpsimp"></a>输入/输出</p>
</th>
</tr>
</thead>
<tbody><tr id="row1594mcpsimp"><td class="cellrowborder" valign="top" width="21.21%" headers="mcps1.1.4.1.1 "><p id="p1596mcpsimp"><a name="p1596mcpsimp"></a><a name="p1596mcpsimp"></a>handle</p>
</td>
<td class="cellrowborder" valign="top" width="62.629999999999995%" headers="mcps1.1.4.1.2 "><p id="p1598mcpsimp"><a name="p1598mcpsimp"></a><a name="p1598mcpsimp"></a>表示一个已启动job的HANDLE。</p>
</td>
<td class="cellrowborder" valign="top" width="16.16%" headers="mcps1.1.4.1.3 "><p id="p1600mcpsimp"><a name="p1600mcpsimp"></a><a name="p1600mcpsimp"></a>输入</p>
</td>
</tr>
</tbody>
</table>

【返回值】

<a name="table1602mcpsimp"></a>
<table><thead align="left"><tr id="row1607mcpsimp"><th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.1"><p id="p1609mcpsimp"><a name="p1609mcpsimp"></a><a name="p1609mcpsimp"></a>返回值</p>
</th>
<th class="cellrowborder" valign="top" width="50%" id="mcps1.1.3.1.2"><p id="p1611mcpsimp"><a name="p1611mcpsimp"></a><a name="p1611mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1613mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1615mcpsimp"><a name="p1615mcpsimp"></a><a name="p1615mcpsimp"></a>0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1617mcpsimp"><a name="p1617mcpsimp"></a><a name="p1617mcpsimp"></a>成功。</p>
</td>
</tr>
<tr id="row1618mcpsimp"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.1 "><p id="p1620mcpsimp"><a name="p1620mcpsimp"></a><a name="p1620mcpsimp"></a>非0</p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.1.3.1.2 "><p id="p1622mcpsimp"><a name="p1622mcpsimp"></a><a name="p1622mcpsimp"></a>失败，参见<span xml:lang="fr-FR" id="ph1310211624513"><a name="ph1310211624513"></a><a name="ph1310211624513"></a><a href="错误码.md">错误码</a></span>。</p>
</td>
</tr>
</tbody>
</table>

【需求】

-   头文件：ot\_common\_vgs.h、ss\_mpi\_vgs.h
-   库文件：libss\_mpi.a

【注意】

handle标识的job必须是已经启动的job。

【举例】

请参见[ss\_mpi\_vgs\_begin\_job](ss_mpi_vgs_begin_job.md)举例。

## 数据类型<a name="ZH-CN_TOPIC_0000002408099306"></a>

VGS模块相关数据类型定义如下：

-   [OT\_VGS\_CLUT\_LEN](OT_VGS_CLUT_LEN.md)：定义Clut颜色表的长度。
-   [OT\_VGS\_TASK\_PRIVATE\_DATA\_LEN](OT_VGS_TASK_PRIVATE_DATA_LEN.md)：定义私有数据长度。
-   [OT\_VGS\_STITCH\_NUM](OT_VGS_STITCH_NUM.md)：定义水平拼接的最大图像数量。
-   [OT\_VGS\_IP\_NUM](OT_VGS_IP_NUM.md)：定义VGS IP个数。
-   [OT\_VGS0](OT_VGS0.md)：定义VGS IP0。
-   [OT\_VGS1](OT_VGS1.md)：定义VGS IP1。
-   [OT\_VGS\_MAX\_COVER\_NUM](OT_VGS_MAX_COVER_NUM.md)：定义Online 任务中的最大Cover数量。
-   [OT\_VGS\_MAX\_OSD\_NUM](OT_VGS_MAX_OSD_NUM.md)：定义Online 任务中的最大OSD数量。
-   [OT\_VGS\_MAX\_CORNER\_RECT\_NUM](OT_VGS_MAX_CORNER_RECT_NUM.md): 定义Online 任务中的最大Corner\_rect数量。
-   [OT\_VGS\_MAX\_MOSAIC\_NUM](OT_VGS_MAX_MOSAIC_NUM.md)：定义Online 任务中的最大Mosaic数量。
-   [ot\_vgs\_handle](ot_vgs_handle.md)：定义VGS job的句柄。
-   [ot\_vgs\_task\_attr](ot_vgs_task_attr.md)：定义VGS  task的属性。
-   [ot\_vgs\_stitch\_task\_attr](ot_vgs_stitch_task_attr.md)：定义VGS 拼接 task的属性。
-   [ot\_vgs\_line](ot_vgs_line.md)：定义VGS画线操作的相关配置。
-   [ot\_vgs\_osd\_inverted\_color](ot_vgs_osd_inverted_color.md)：定义反色模式类型。
-   [ot\_vgs\_osd](ot_vgs_osd.md)：定义VGS上OSD的配置。
-   [ot\_vgs\_scale\_coef\_mode](ot_vgs_scale_coef_mode.md)：定义VGS缩放系数模式的配置。
-   [ot\_vgs\_online](ot_vgs_online.md)：定义VGS在线任务的配置。



















### OT\_VGS\_CLUT\_LEN<a name="ZH-CN_TOPIC_0000002408259230"></a>

【说明】

定义Clut颜色表的长度。

【定义】

```
#define OT_VGS_CLUT_LEN                16
```

【注意事项】

无。

【相关数据类型及接口】

[ss\_mpi\_vgs\_add\_osd\_task](#ss_mpi_vgs_add_osd_task)

### OT\_VGS\_TASK\_PRIVATE\_DATA\_LEN<a name="ZH-CN_TOPIC_0000002408259214"></a>

【说明】

定义私有数据长度。

【定义】

```
#define OT_VGS_TASK_PRIVATE_DATA_LEN   4
```

【注意事项】

无。

【相关数据类型及接口】

无。

### OT\_VGS\_STITCH\_NUM<a name="ZH-CN_TOPIC_0000002441698501"></a>

【说明】

定义水平拼接的最大图像数量。

【定义】

```
#define OT_VGS_STITCH_NUM   4
```

【注意事项】

无。

【相关数据类型及接口】

[ot\_vgs\_stitch\_task\_attr](#ot_vgs_stitch_task_attr)

### OT\_VGS\_IP\_NUM<a name="ZH-CN_TOPIC_0000002408259234"></a>

【说明】

定义VGS IP个数。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101：

```
#define OT_VGS_IP_NUM                      1
```

SS928V100/SS626V100：

```
#define OT_VGS_IP_NUM                      2
```

【注意事项】

无。

【相关数据类型及接口】

无。

### OT\_VGS0<a name="ZH-CN_TOPIC_0000002441698493"></a>

【说明】

定义VGS IP0。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100：

```
#define OT_VGS0                            0
```

【注意事项】

无。

【相关数据类型及接口】

无。

### OT\_VGS1<a name="ZH-CN_TOPIC_0000002408099322"></a>

【说明】

定义VGS IP1。

【定义】

SS528V100/SS625V100//SS524V100/SS522V101：

无。

SS928V100/SS626V100:

```
#define OT_VGS1                            1
```

【注意事项】

无。

【相关数据类型及接口】

无。

### OT\_VGS\_MAX\_COVER\_NUM<a name="ZH-CN_TOPIC_0000002408259242"></a>

【说明】

定义Online 任务中的最大Cover数量。

【定义】

SS928V100:

```
#define OT_VGS_MAX_COVER_NUM   9
```

SS626V100:

```
#define OT_VGS_MAX_COVER_NUM   4
```

【注意事项】

仅SS928V100/SS626V100支持。

【相关数据类型及接口】

[ot\_vgs\_online](#ot_vgs_online)

### OT\_VGS\_MAX\_OSD\_NUM<a name="ZH-CN_TOPIC_0000002408259226"></a>

【说明】

定义Online 任务中的最大OSD数量。

【定义】

SS928V100/SS626V100:

```
#define OT_VGS_MAX_OSD_NUM   1
```

【注意事项】

仅SS928V100/SS626V100支持。

【相关数据类型及接口】

[ot\_vgs\_online](#ot_vgs_online)

### OT\_VGS\_MAX\_CORNER\_RECT\_NUM<a name="ZH-CN_TOPIC_0000002408259238"></a>

【说明】

定义Online 任务中的最大Corner\_rect数量。

【定义】

```
#define OT_VGS_MAX_CORNER_RECT_NUM   32
```

【注意事项】

仅SS928V100支持。

【相关数据类型及接口】

[ot\_vgs\_online](#ot_vgs_online)

### OT\_VGS\_MAX\_MOSAIC\_NUM<a name="ZH-CN_TOPIC_0000002441698477"></a>

【说明】

定义Online 任务中的最大Mosaic数量。

【定义】

SS928V100:

```
#define OT_VGS_MAX_MOSAIC_NUM   4
```

SS626V100:

```
#define OT_VGS_MAX_MOSAIC_NUM   1
```

【注意事项】

仅SS928V100/SS626V100支持。

【相关数据类型及接口】

[ot\_vgs\_online](#ot_vgs_online)

### ot\_vgs\_handle<a name="ZH-CN_TOPIC_0000002441658645"></a>

【说明】

定义VGS  job的句柄。

【定义】

```
typedef td_s32   ot_vgs_handle;
```

【注意事项】

无。

【相关数据类型及接口】

无。

### ot\_vgs\_task\_attr<a name="ZH-CN_TOPIC_0000002441658653"></a>

【说明】

定义VGS task的属性。

【定义】

```
typedef struct {
    ot_video_frame_info        img_in;
    ot_video_frame_info        img_out;
    td_u64                     private_data[OT_VGS_TASK_PRIVATE_DATA_LEN];
    td_u32                     reserved;
} ot_vgs_task_attr;
```

【成员】

<a name="table1719mcpsimp"></a>
<table><thead align="left"><tr id="row1724mcpsimp"><th class="cellrowborder" valign="top" width="27%" id="mcps1.1.3.1.1"><p id="p1726mcpsimp"><a name="p1726mcpsimp"></a><a name="p1726mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="73%" id="mcps1.1.3.1.2"><p id="p1728mcpsimp"><a name="p1728mcpsimp"></a><a name="p1728mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1730mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p1732mcpsimp"><a name="p1732mcpsimp"></a><a name="p1732mcpsimp"></a>img_in</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1734mcpsimp"><a name="p1734mcpsimp"></a><a name="p1734mcpsimp"></a>输入图像属性。</p>
<p id="ot_video_frame_info"><a name="ot_video_frame_info"></a><a name="ot_video_frame_info"></a>ot_video_frame_info请参考“系统控制”章节。</p>
</td>
</tr>
<tr id="row1735mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p1737mcpsimp"><a name="p1737mcpsimp"></a><a name="p1737mcpsimp"></a>img_out</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1739mcpsimp"><a name="p1739mcpsimp"></a><a name="p1739mcpsimp"></a>输出图像属性。</p>
</td>
</tr>
<tr id="row1740mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p1742mcpsimp"><a name="p1742mcpsimp"></a><a name="p1742mcpsimp"></a>private_data</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1744mcpsimp"><a name="p1744mcpsimp"></a><a name="p1744mcpsimp"></a>与task相关的私有数据，VGS不会使用和修改其中的数据。</p>
</td>
</tr>
<tr id="row1745mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p1747mcpsimp"><a name="p1747mcpsimp"></a><a name="p1747mcpsimp"></a>reserved</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1749mcpsimp"><a name="p1749mcpsimp"></a><a name="p1749mcpsimp"></a>保留项。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

输入和输出图像属性需要满足相关约束。

【相关数据类型及接口】

[ot\_video\_frame\_info](#ot_video_frame_info)

### ot\_vgs\_stitch\_task\_attr<a name="ZH-CN_TOPIC_0000002408099318"></a>

【说明】

定义VGS 拼接task的属性。

【定义】

```
typedef struct {
    ot_video_frame_info        img_in[OT_VGS_STITCH_NUM];
    ot_video_frame_info        img_out;
    td_u64                     private_data[OT_VGS_TASK_PRIVATE_DATA_LEN];
    td_u32                     reserved;
} ot_vgs_stitch_task_attr;
```

【成员】

<a name="table1769mcpsimp"></a>
<table><thead align="left"><tr id="row1774mcpsimp"><th class="cellrowborder" valign="top" width="23%" id="mcps1.1.3.1.1"><p id="p1776mcpsimp"><a name="p1776mcpsimp"></a><a name="p1776mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="77%" id="mcps1.1.3.1.2"><p id="p1778mcpsimp"><a name="p1778mcpsimp"></a><a name="p1778mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1780mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p1782mcpsimp"><a name="p1782mcpsimp"></a><a name="p1782mcpsimp"></a>img_in</p>
</td>
<td class="cellrowborder" valign="top" width="77%" headers="mcps1.1.3.1.2 "><p id="p1784mcpsimp"><a name="p1784mcpsimp"></a><a name="p1784mcpsimp"></a>输入图像属性数组，最多4张图像。</p>
</td>
</tr>
<tr id="row1785mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p1787mcpsimp"><a name="p1787mcpsimp"></a><a name="p1787mcpsimp"></a>img_out</p>
</td>
<td class="cellrowborder" valign="top" width="77%" headers="mcps1.1.3.1.2 "><p id="p1789mcpsimp"><a name="p1789mcpsimp"></a><a name="p1789mcpsimp"></a>输出图像属性。</p>
</td>
</tr>
<tr id="row1790mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p1792mcpsimp"><a name="p1792mcpsimp"></a><a name="p1792mcpsimp"></a>private_data</p>
</td>
<td class="cellrowborder" valign="top" width="77%" headers="mcps1.1.3.1.2 "><p id="p1794mcpsimp"><a name="p1794mcpsimp"></a><a name="p1794mcpsimp"></a>与task相关的私有数据，VGS不会使用和修改其中的数据。</p>
</td>
</tr>
<tr id="row1795mcpsimp"><td class="cellrowborder" valign="top" width="23%" headers="mcps1.1.3.1.1 "><p xml:lang="sv-SE" id="p1797mcpsimp"><a name="p1797mcpsimp"></a><a name="p1797mcpsimp"></a>reserved</p>
</td>
<td class="cellrowborder" valign="top" width="77%" headers="mcps1.1.3.1.2 "><p id="p1799mcpsimp"><a name="p1799mcpsimp"></a><a name="p1799mcpsimp"></a>保留项。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

输入和输出图像属性需要满足相关约束。

【相关数据类型及接口】

[ss\_mpi\_vgs\_add\_stitch\_task](#ss_mpi_vgs_add_stitch_task)

### ot\_vgs\_line<a name="ZH-CN_TOPIC_0000002408099298"></a>

【说明】

定义VGS画线操作的相关配置。

【定义】

```
typedef struct {
    ot_point                   start_point;          
    ot_point                   end_point;           
    td_u32                     thick;                
    td_u32                     color;                
} ot_vgs_line;
```

【成员】

<a name="table1817mcpsimp"></a>
<table><thead align="left"><tr id="row1822mcpsimp"><th class="cellrowborder" valign="top" width="27%" id="mcps1.1.3.1.1"><p id="p1824mcpsimp"><a name="p1824mcpsimp"></a><a name="p1824mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="73%" id="mcps1.1.3.1.2"><p id="p1826mcpsimp"><a name="p1826mcpsimp"></a><a name="p1826mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1828mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1830mcpsimp"><a name="p1830mcpsimp"></a><a name="p1830mcpsimp"></a>start_point</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1832mcpsimp"><a name="p1832mcpsimp"></a><a name="p1832mcpsimp"></a>线的起始点坐标。坐标值均要求2对齐，取值范围：</p>
<p id="p1833mcpsimp"><a name="p1833mcpsimp"></a><a name="p1833mcpsimp"></a>SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100：</p>
<p id="p1834mcpsimp"><a name="p1834mcpsimp"></a><a name="p1834mcpsimp"></a>水平位置X：[-16384, 16382]</p>
<p id="p1835mcpsimp"><a name="p1835mcpsimp"></a><a name="p1835mcpsimp"></a>垂直位置Y：[-8192, 8190]</p>
</td>
</tr>
<tr id="row1836mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1838mcpsimp"><a name="p1838mcpsimp"></a><a name="p1838mcpsimp"></a>end_point</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1840mcpsimp"><a name="p1840mcpsimp"></a><a name="p1840mcpsimp"></a>线的结束点坐标。坐标值均要求2对齐，取值范围：</p>
<p id="p1841mcpsimp"><a name="p1841mcpsimp"></a><a name="p1841mcpsimp"></a>SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100：</p>
<p id="p1842mcpsimp"><a name="p1842mcpsimp"></a><a name="p1842mcpsimp"></a>水平位置X：[-16384, 16384]</p>
<p id="p1843mcpsimp"><a name="p1843mcpsimp"></a><a name="p1843mcpsimp"></a>垂直位置Y：[-8192, 8192]</p>
</td>
</tr>
<tr id="row1844mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1846mcpsimp"><a name="p1846mcpsimp"></a><a name="p1846mcpsimp"></a>thick</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1848mcpsimp"><a name="p1848mcpsimp"></a><a name="p1848mcpsimp"></a>线的宽度，2像素对齐。</p>
<p id="p1849mcpsimp"><a name="p1849mcpsimp"></a><a name="p1849mcpsimp"></a>SS528V100/SS625V100/SS524V100/SS522V101/SS626V100取值范围：[2,14]</p>
<p id="p1850mcpsimp"><a name="p1850mcpsimp"></a><a name="p1850mcpsimp"></a>SS928V100取值范围：[2,16]</p>
</td>
</tr>
<tr id="row1851mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1853mcpsimp"><a name="p1853mcpsimp"></a><a name="p1853mcpsimp"></a>color</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1855mcpsimp"><a name="p1855mcpsimp"></a><a name="p1855mcpsimp"></a>线的颜色，RGB888格式，取值范围：[0x0, 0xFFFFFF]</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

-   画线操作时，如果起始坐标和结束坐标的X坐标相同，则起始坐标和结束坐标的Y坐标不变，X坐标分别向右增加线的宽度。如果起始坐标和结束坐标的X坐标不相同，则X坐标不变，起始坐标和结束坐标的Y坐标分别向下增加线的宽度。
-   画线可以部分或者全部超出目标图像。
-   起始点和结束点不能重合。
-   画线颜色为RGB模式，R、G、B分别对应位域如下：

    31        23         15          7          0

    |--------------|--------R------|--------G------|--------B------|

-   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100 不支持压缩图像画斜线。压缩图像只能画竖线或横线。

【相关数据类型及接口】

ot\_point

### ot\_vgs\_osd\_inverted\_color<a name="ZH-CN_TOPIC_0000002408099310"></a>

【说明】

定义反色模式类型。

【定义】

```
typedef enum {
    OT_VGS_OSD_INVERTED_COLOR_NONE = 0,
    OT_VGS_OSD_INVERTED_COLOR_RGB,
    OT_VGS_OSD_INVERTED_COLOR_ALPHA,
    OT_VGS_OSD_INVERTED_COLOR_ALL,
    OT_VGS_OSD_INVERTED_COLOR_BUTT
} ot_vgs_osd_inverted_color;
```

【成员】

<a name="table1879mcpsimp"></a>
<table><thead align="left"><tr id="row1884mcpsimp"><th class="cellrowborder" valign="top" width="61%" id="mcps1.1.3.1.1"><p id="p1886mcpsimp"><a name="p1886mcpsimp"></a><a name="p1886mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="39%" id="mcps1.1.3.1.2"><p id="p1888mcpsimp"><a name="p1888mcpsimp"></a><a name="p1888mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1890mcpsimp"><td class="cellrowborder" valign="top" width="61%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1892mcpsimp"><a name="p1892mcpsimp"></a><a name="p1892mcpsimp"></a>OT_VGS_OSD_INVERTED_COLOR_NONE</p>
</td>
<td class="cellrowborder" valign="top" width="39%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p1894mcpsimp"><a name="p1894mcpsimp"></a><a name="p1894mcpsimp"></a>不反色。</p>
</td>
</tr>
<tr id="row1895mcpsimp"><td class="cellrowborder" valign="top" width="61%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1897mcpsimp"><a name="p1897mcpsimp"></a><a name="p1897mcpsimp"></a>OT_VGS_OSD_INVERTED_COLOR_RGB</p>
</td>
<td class="cellrowborder" valign="top" width="39%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p1899mcpsimp"><a name="p1899mcpsimp"></a><a name="p1899mcpsimp"></a>仅对RGB反色。</p>
</td>
</tr>
<tr id="row1900mcpsimp"><td class="cellrowborder" valign="top" width="61%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1902mcpsimp"><a name="p1902mcpsimp"></a><a name="p1902mcpsimp"></a>OT_VGS_OSD_INVERTED_COLOR_ALPHA</p>
</td>
<td class="cellrowborder" valign="top" width="39%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p1904mcpsimp"><a name="p1904mcpsimp"></a><a name="p1904mcpsimp"></a>仅对alpha反色。</p>
</td>
</tr>
<tr id="row1905mcpsimp"><td class="cellrowborder" valign="top" width="61%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1907mcpsimp"><a name="p1907mcpsimp"></a><a name="p1907mcpsimp"></a>OT_VGS_OSD_INVERTED_COLOR_ALL</p>
</td>
<td class="cellrowborder" valign="top" width="39%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p1909mcpsimp"><a name="p1909mcpsimp"></a><a name="p1909mcpsimp"></a>对RGB和alpha反色。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

仅SS928V100支持，其它解决方案设置不生效。

【相关数据类型及接口】

无

### ot\_vgs\_osd<a name="ZH-CN_TOPIC_0000002441658649"></a>

【说明】

定义VGS上OSD的配置。

【定义】

```
typedef struct {
    ot_rect                    rect;
    td_u32                     bg_color;
    ot_pixel_format            pixel_format;
    td_phys_addr_t             phys_addr;
    td_u32                     stride;
    td_u32                     bg_alpha;
    td_u32                     fg_alpha;
    td_u32                     clut[OT_VGS_CLUT_LEN];
    [ot_vgs_osd_inverted_color](ot_vgs_osd_inverted_color.md)  osd_inverted_color;
} ot_vgs_osd;
```

【成员】

<a name="table1936mcpsimp"></a>
<table><thead align="left"><tr id="row1941mcpsimp"><th class="cellrowborder" valign="top" width="27%" id="mcps1.1.3.1.1"><p id="p1943mcpsimp"><a name="p1943mcpsimp"></a><a name="p1943mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="73%" id="mcps1.1.3.1.2"><p id="p1945mcpsimp"><a name="p1945mcpsimp"></a><a name="p1945mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1947mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1949mcpsimp"><a name="p1949mcpsimp"></a><a name="p1949mcpsimp"></a>rect</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p1951mcpsimp"><a name="p1951mcpsimp"></a><a name="p1951mcpsimp"></a>OSD的起始坐标及宽高。位置和宽高值均要求2对齐。</p>
<p id="p1952mcpsimp"><a name="p1952mcpsimp"></a><a name="p1952mcpsimp"></a>取值范围<span xml:lang="de-DE" id="ph1953mcpsimp"><a name="ph1953mcpsimp"></a><a name="ph1953mcpsimp"></a>：</span></p>
<p xml:lang="de-DE" id="p1954mcpsimp"><a name="p1954mcpsimp"></a><a name="p1954mcpsimp"></a><span xml:lang="en-US" id="ph1955mcpsimp"><a name="ph1955mcpsimp"></a><a name="ph1955mcpsimp"></a>水平位置</span>X：[0, 16382]</p>
<p xml:lang="de-DE" id="p1956mcpsimp"><a name="p1956mcpsimp"></a><a name="p1956mcpsimp"></a><span xml:lang="en-US" id="ph1957mcpsimp"><a name="ph1957mcpsimp"></a><a name="ph1957mcpsimp"></a>垂直位置</span>Y：[0, 8190]</p>
<p xml:lang="de-DE" id="p1958mcpsimp"><a name="p1958mcpsimp"></a><a name="p1958mcpsimp"></a><span xml:lang="en-US" id="ph1959mcpsimp"><a name="ph1959mcpsimp"></a><a name="ph1959mcpsimp"></a>宽度</span>：[2, 16384]，SS928V100只支持：[2,8192]</p>
<p xml:lang="de-DE" id="p1960mcpsimp"><a name="p1960mcpsimp"></a><a name="p1960mcpsimp"></a><span xml:lang="en-US" id="ph1961mcpsimp"><a name="ph1961mcpsimp"></a><a name="ph1961mcpsimp"></a>高度</span>：[2, 8192]</p>
</td>
</tr>
<tr id="row1962mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1964mcpsimp"><a name="p1964mcpsimp"></a><a name="p1964mcpsimp"></a>bg_color</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1966mcpsimp"><a name="p1966mcpsimp"></a><a name="p1966mcpsimp"></a>保留参数。</p>
</td>
</tr>
<tr id="row1968mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1970mcpsimp"><a name="p1970mcpsimp"></a><a name="p1970mcpsimp"></a>pixel_format</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p1972mcpsimp"><a name="p1972mcpsimp"></a><a name="p1972mcpsimp"></a>OSD的像素格式：</p>
<p xml:lang="de-DE" id="p1973mcpsimp"><a name="p1973mcpsimp"></a><a name="p1973mcpsimp"></a><span xml:lang="en-US" id="ph1974mcpsimp"><a name="ph1974mcpsimp"></a><a name="ph1974mcpsimp"></a>支持</span>ARGB1555，ARGB4444，ARGB8888，Clut2，Clut4<span xml:lang="en-US" id="ph1975mcpsimp"><a name="ph1975mcpsimp"></a><a name="ph1975mcpsimp"></a>格式</span></p>
</td>
</tr>
<tr id="row1976mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1978mcpsimp"><a name="p1978mcpsimp"></a><a name="p1978mcpsimp"></a>phys_addr</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p1980mcpsimp"><a name="p1980mcpsimp"></a><a name="p1980mcpsimp"></a>OSD图像的物理地址。</p>
</td>
</tr>
<tr id="row1981mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1983mcpsimp"><a name="p1983mcpsimp"></a><a name="p1983mcpsimp"></a>stride</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p1985mcpsimp"><a name="p1985mcpsimp"></a><a name="p1985mcpsimp"></a>OSD的stride。</p>
</td>
</tr>
<tr id="row1986mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1988mcpsimp"><a name="p1988mcpsimp"></a><a name="p1988mcpsimp"></a>bg_alpha</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p1990mcpsimp"><a name="p1990mcpsimp"></a><a name="p1990mcpsimp"></a>像素格式为ARGB1555时，OSD的背景alpha值，取值范围：[0, 255]</p>
</td>
</tr>
<tr id="row1991mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1993mcpsimp"><a name="p1993mcpsimp"></a><a name="p1993mcpsimp"></a>fg_alpha</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p1995mcpsimp"><a name="p1995mcpsimp"></a><a name="p1995mcpsimp"></a>像素格式为ARGB1555时，OSD的前景alpha值，取值范围：[0, 255]</p>
</td>
</tr>
<tr id="row1996mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1998mcpsimp"><a name="p1998mcpsimp"></a><a name="p1998mcpsimp"></a>clut [<a href="OT_VGS_CLUT_LEN.md">OT_VGS_CLUT_LEN</a>]</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p2001mcpsimp"><a name="p2001mcpsimp"></a><a name="p2001mcpsimp"></a>OSD像素格式为Clut4或Clut2时的颜色值。Clut2使用4个颜色值。Clut4使用16个颜色值。</p>
</td>
</tr>
<tr id="row2002mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p2004mcpsimp"><a name="p2004mcpsimp"></a><a name="p2004mcpsimp"></a>osd_inverted_color</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p2006mcpsimp"><a name="p2006mcpsimp"></a><a name="p2006mcpsimp"></a>反色模式。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

-   OSD区域可以部分或者全部超出目标图像，但起始点坐标不能为负。
-   SS528V100/SS625V100/SS524V100/SS522V101/SS626V100不支持OSD反色，也无需设置osd\_inverted\_color，同时不做异常参数检查。

【相关数据类型及接口】

[ss\_mpi\_vgs\_add\_osd\_task](#ss_mpi_vgs_add_osd_task)

### ot\_vgs\_scale\_coef\_mode<a name="ZH-CN_TOPIC_0000002441698489"></a>

【说明】

定义VGS缩放系数模式的配置。

【定义】

```
typedef enum {
    OT_VGS_SCALE_COEF_NORM = 0,
    OT_VGS_SCALE_COEF_TAP2,
    OT_VGS_SCALE_COEF_TAP4,
    OT_VGS_SCALE_COEF_TAP6,
    OT_VGS_SCALE_COEF_TAP8,
    OT_VGS_SCALE_COEF_BUTT
} ot_vgs_scale_coef_mode;
```

【成员】

<a name="table2032mcpsimp"></a>
<table><thead align="left"><tr id="row2037mcpsimp"><th class="cellrowborder" valign="top" width="42%" id="mcps1.1.3.1.1"><p id="p2039mcpsimp"><a name="p2039mcpsimp"></a><a name="p2039mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="57.99999999999999%" id="mcps1.1.3.1.2"><p id="p2041mcpsimp"><a name="p2041mcpsimp"></a><a name="p2041mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row2043mcpsimp"><td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p2045mcpsimp"><a name="p2045mcpsimp"></a><a name="p2045mcpsimp"></a>OT_VGS_SCALE_COEF_NORM</p>
</td>
<td class="cellrowborder" valign="top" width="57.99999999999999%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p2047mcpsimp"><a name="p2047mcpsimp"></a><a name="p2047mcpsimp"></a>普通缩放系数，水平、垂直方向任意比例缩放。</p>
</td>
</tr>
<tr id="row2048mcpsimp"><td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p2050mcpsimp"><a name="p2050mcpsimp"></a><a name="p2050mcpsimp"></a>OT_VGS_SCALE_COEF_TAP2</p>
</td>
<td class="cellrowborder" valign="top" width="57.99999999999999%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p2052mcpsimp"><a name="p2052mcpsimp"></a><a name="p2052mcpsimp"></a>2阶缩放系数，水平、垂直方向任意比例缩放。</p>
</td>
</tr>
<tr id="row2053mcpsimp"><td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p2055mcpsimp"><a name="p2055mcpsimp"></a><a name="p2055mcpsimp"></a>OT_VGS_SCALE_COEF_TAP4</p>
</td>
<td class="cellrowborder" valign="top" width="57.99999999999999%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p2057mcpsimp"><a name="p2057mcpsimp"></a><a name="p2057mcpsimp"></a>4阶缩放系数，垂直方向缩小4倍，水平方向4阶滤波。</p>
</td>
</tr>
<tr id="row2058mcpsimp"><td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p2060mcpsimp"><a name="p2060mcpsimp"></a><a name="p2060mcpsimp"></a>OT_VGS_SCALE_COEF_TAP6</p>
</td>
<td class="cellrowborder" valign="top" width="57.99999999999999%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p2062mcpsimp"><a name="p2062mcpsimp"></a><a name="p2062mcpsimp"></a>6阶缩放系数，垂直方向缩小4倍，水平方向6阶滤波。</p>
</td>
</tr>
<tr id="row2063mcpsimp"><td class="cellrowborder" valign="top" width="42%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p2065mcpsimp"><a name="p2065mcpsimp"></a><a name="p2065mcpsimp"></a>OT_VGS_SCALE_COEF_TAP8</p>
</td>
<td class="cellrowborder" valign="top" width="57.99999999999999%" headers="mcps1.1.3.1.2 "><p xml:lang="de-DE" id="p2067mcpsimp"><a name="p2067mcpsimp"></a><a name="p2067mcpsimp"></a>8阶缩放系数，垂直方向缩小4倍，水平方向8阶滤波。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

-   使用4阶、6阶、8阶缩放系数时，输入输出图像高度比例需设置为1/4，宽度不变。
-   SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100只支持OT\_VGS\_SCALE\_COEF\_NORM模式。

【相关数据类型及接口】

[ss\_mpi\_vgs\_add\_scale\_task](#ss_mpi_vgs_add_scale_task)

### ot\_vgs\_online<a name="ZH-CN_TOPIC_0000002441658633"></a>

【说明】

定义VGS在线任务的配置。

【定义】

```
typedef struct {
    td_bool             crop_en;
    ot_rect             crop_rect;
    td_u32              mosaic_num;
    ot_mosaic           mosaic[OT_VGS_MAX_MOSAIC_NUM];
    td_u32              cover_num;
    ot_cover            cover[OT_VGS_MAX_COVER_NUM];
    td_u32              corner_rect_num;
    ot_corner_rect_attr corner_rect_attr;
    ot_corner_rect      corner_rect[OT_VGS_MAX_CORNER_RECT_NUM];
    td_u32              osd_num;
    ot_vgs_osd          osd[OT_VGS_MAX_OSD_NUM];
    td_bool             mirror_en;
    td_bool             flip_en;
    ot_vgs_scale_coef_mode scale_coef_mode;
} ot_vgs_online;
```

【成员】

<a name="table1817mcpsimp"></a>
<table><thead align="left"><tr id="row1822mcpsimp"><th class="cellrowborder" valign="top" width="27%" id="mcps1.1.3.1.1"><p id="p1824mcpsimp"><a name="p1824mcpsimp"></a><a name="p1824mcpsimp"></a>成员名称</p>
</th>
<th class="cellrowborder" valign="top" width="73%" id="mcps1.1.3.1.2"><p id="p1826mcpsimp"><a name="p1826mcpsimp"></a><a name="p1826mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row1828mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1830mcpsimp"><a name="p1830mcpsimp"></a><a name="p1830mcpsimp"></a>crop_en</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p185717396511"><a name="p185717396511"></a><a name="p185717396511"></a>Crop是否使能。</p>
</td>
</tr>
<tr id="row1836mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1838mcpsimp"><a name="p1838mcpsimp"></a><a name="p1838mcpsimp"></a>crop_rect</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p05475315518"><a name="p05475315518"></a><a name="p05475315518"></a>Crop功能的配置。</p>
</td>
</tr>
<tr id="row1844mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1846mcpsimp"><a name="p1846mcpsimp"></a><a name="p1846mcpsimp"></a>mosaic_num</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1850mcpsimp"><a name="p1850mcpsimp"></a><a name="p1850mcpsimp"></a>Mosaic的数量。取值范围：[0, <a href="OT_VGS_MAX_MOSAIC_NUM.md">OT_VGS_MAX_MOSAIC_NUM</a>]</p>
</td>
</tr>
<tr id="row1851mcpsimp"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p xml:lang="de-DE" id="p1853mcpsimp"><a name="p1853mcpsimp"></a><a name="p1853mcpsimp"></a>mosaic</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p1855mcpsimp"><a name="p1855mcpsimp"></a><a name="p1855mcpsimp"></a>Mosaic功能参数配置。</p>
</td>
</tr>
<tr id="row196739192079"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p56733191779"><a name="p56733191779"></a><a name="p56733191779"></a>cover_num</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p579810217817"><a name="p579810217817"></a><a name="p579810217817"></a>Cover的数量。取值范围：[0, <a href="OT_VGS_MAX_COVER_NUM.md">OT_VGS_MAX_COVER_NUM</a>]</p>
</td>
</tr>
<tr id="row0482025577"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p348132516712"><a name="p348132516712"></a><a name="p348132516712"></a>cover</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p184810251978"><a name="p184810251978"></a><a name="p184810251978"></a>Cover功能参数配置。</p>
</td>
</tr>
<tr id="row674415255814"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p1744125888"><a name="p1744125888"></a><a name="p1744125888"></a>corner_rect_num</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p197441250814"><a name="p197441250814"></a><a name="p197441250814"></a>Corner_rect的数量。取值范围：[0, <a href="OT_VGS_MAX_CORNER_RECT_NUM.md">OT_VGS_MAX_CORNER_RECT_NUM</a>]</p>
</td>
</tr>
<tr id="row1528884213813"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p17288542384"><a name="p17288542384"></a><a name="p17288542384"></a>corner_rect_attr</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p142889422811"><a name="p142889422811"></a><a name="p142889422811"></a>Corner_rect功能公共参数。</p>
</td>
</tr>
<tr id="row260710451985"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p1260854514815"><a name="p1260854514815"></a><a name="p1260854514815"></a>corner_rect</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p126089455820"><a name="p126089455820"></a><a name="p126089455820"></a>Corner_rect功能参数配置。</p>
</td>
</tr>
<tr id="row17351849183"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p1335113491687"><a name="p1335113491687"></a><a name="p1335113491687"></a>osd_num</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p835120494817"><a name="p835120494817"></a><a name="p835120494817"></a>OSD的数量。取值范围：[0, <a href="OT_VGS_MAX_OSD_NUM.md">OT_VGS_MAX_OSD_NUM</a>]</p>
</td>
</tr>
<tr id="row117517532080"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p975119531184"><a name="p975119531184"></a><a name="p975119531184"></a>osd</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p16751253181"><a name="p16751253181"></a><a name="p16751253181"></a>OSD功能参数配置。</p>
</td>
</tr>
<tr id="row1781858382"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p1988582089"><a name="p1988582089"></a><a name="p1988582089"></a>mirror_en</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p58158782"><a name="p58158782"></a><a name="p58158782"></a>Mirror是否使能。</p>
</td>
</tr>
<tr id="row1184741398"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p1084714115911"><a name="p1084714115911"></a><a name="p1084714115911"></a>flip_en</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p88472120914"><a name="p88472120914"></a><a name="p88472120914"></a>Flip是否使能。</p>
</td>
</tr>
<tr id="row679745201212"><td class="cellrowborder" valign="top" width="27%" headers="mcps1.1.3.1.1 "><p id="p679885181213"><a name="p679885181213"></a><a name="p679885181213"></a>scale_coef_mode</p>
</td>
<td class="cellrowborder" valign="top" width="73%" headers="mcps1.1.3.1.2 "><p id="p167985519125"><a name="p167985519125"></a><a name="p167985519125"></a>缩放模式的参数配置。</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

-   scale\_coef\_mode只支持OT\_VGS\_SCALE\_COEF\_NORM模式。
-   仅SS928V100/SS626V100支持。

【相关数据类型及接口】

[ss\_mpi\_vgs\_add\_online\_task](#ss_mpi_vgs_add_online_task)

## 错误码<a name="ZH-CN_TOPIC_0000002441658661"></a>

VGS API错误码如下所示。

**表 1**  VGS API错误码

<a name="_Ref248290030"></a>
<table><thead align="left"><tr id="row2085mcpsimp"><th class="cellrowborder" valign="top" width="20%" id="mcps1.2.4.1.1"><p id="p2087mcpsimp"><a name="p2087mcpsimp"></a><a name="p2087mcpsimp"></a>错误代码</p>
</th>
<th class="cellrowborder" valign="top" width="43%" id="mcps1.2.4.1.2"><p id="p2089mcpsimp"><a name="p2089mcpsimp"></a><a name="p2089mcpsimp"></a>宏定义</p>
</th>
<th class="cellrowborder" valign="top" width="37%" id="mcps1.2.4.1.3"><p id="p2091mcpsimp"><a name="p2091mcpsimp"></a><a name="p2091mcpsimp"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row2093mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p2095mcpsimp"><a name="p2095mcpsimp"></a><a name="p2095mcpsimp"></a>0xa02d8016</p>
</td>
<td class="cellrowborder" valign="top" width="43%" headers="mcps1.2.4.1.2 "><p xml:lang="sv-SE" id="p2097mcpsimp"><a name="p2097mcpsimp"></a><a name="p2097mcpsimp"></a>OT_ERR_VGS_BUF_EMPTY</p>
</td>
<td class="cellrowborder" valign="top" width="37%" headers="mcps1.2.4.1.3 "><p id="p2099mcpsimp"><a name="p2099mcpsimp"></a><a name="p2099mcpsimp"></a>VGS的job,task或node节点已经使用完毕</p>
</td>
</tr>
<tr id="row2100mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p2102mcpsimp"><a name="p2102mcpsimp"></a><a name="p2102mcpsimp"></a>0xa02d8007</p>
</td>
<td class="cellrowborder" valign="top" width="43%" headers="mcps1.2.4.1.2 "><p xml:lang="sv-SE" id="p2104mcpsimp"><a name="p2104mcpsimp"></a><a name="p2104mcpsimp"></a>OT_ERR_VGS_ILLEGAL_PARAM</p>
</td>
<td class="cellrowborder" valign="top" width="37%" headers="mcps1.2.4.1.3 "><p id="p2106mcpsimp"><a name="p2106mcpsimp"></a><a name="p2106mcpsimp"></a>VGS参数设置无效</p>
</td>
</tr>
<tr id="row2107mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p2109mcpsimp"><a name="p2109mcpsimp"></a><a name="p2109mcpsimp"></a>0xa02d800a</p>
</td>
<td class="cellrowborder" valign="top" width="43%" headers="mcps1.2.4.1.2 "><p xml:lang="sv-SE" id="p2111mcpsimp"><a name="p2111mcpsimp"></a><a name="p2111mcpsimp"></a>OT_ERR_VGS_NULL_PTR</p>
</td>
<td class="cellrowborder" valign="top" width="37%" headers="mcps1.2.4.1.3 "><p id="p2113mcpsimp"><a name="p2113mcpsimp"></a><a name="p2113mcpsimp"></a>输入参数空指针错误</p>
</td>
</tr>
<tr id="row2114mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p2116mcpsimp"><a name="p2116mcpsimp"></a><a name="p2116mcpsimp"></a>0xa02d800c</p>
</td>
<td class="cellrowborder" valign="top" width="43%" headers="mcps1.2.4.1.2 "><p xml:lang="sv-SE" id="p2118mcpsimp"><a name="p2118mcpsimp"></a><a name="p2118mcpsimp"></a>OT_ERR_VGS_NOT_SUPPORT</p>
</td>
<td class="cellrowborder" valign="top" width="37%" headers="mcps1.2.4.1.3 "><p id="p2120mcpsimp"><a name="p2120mcpsimp"></a><a name="p2120mcpsimp"></a>操作不支持</p>
</td>
</tr>
<tr id="row2121mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p2123mcpsimp"><a name="p2123mcpsimp"></a><a name="p2123mcpsimp"></a>0xa02d800d</p>
</td>
<td class="cellrowborder" valign="top" width="43%" headers="mcps1.2.4.1.2 "><p id="p2125mcpsimp"><a name="p2125mcpsimp"></a><a name="p2125mcpsimp"></a>OT_ERR_VGS_NOT_PERM</p>
</td>
<td class="cellrowborder" valign="top" width="37%" headers="mcps1.2.4.1.3 "><p id="p2127mcpsimp"><a name="p2127mcpsimp"></a><a name="p2127mcpsimp"></a>操作不允许</p>
</td>
</tr>
<tr id="row2128mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p2130mcpsimp"><a name="p2130mcpsimp"></a><a name="p2130mcpsimp"></a>0xa02d8015</p>
</td>
<td class="cellrowborder" valign="top" width="43%" headers="mcps1.2.4.1.2 "><p xml:lang="da-DK" id="p2132mcpsimp"><a name="p2132mcpsimp"></a><a name="p2132mcpsimp"></a>OT_ERR_VGS_NO_BUF</p>
</td>
<td class="cellrowborder" valign="top" width="37%" headers="mcps1.2.4.1.3 "><p id="p2134mcpsimp"><a name="p2134mcpsimp"></a><a name="p2134mcpsimp"></a>分配内存失败</p>
</td>
</tr>
<tr id="row2135mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p2137mcpsimp"><a name="p2137mcpsimp"></a><a name="p2137mcpsimp"></a>0xa02d8018</p>
</td>
<td class="cellrowborder" valign="top" width="43%" headers="mcps1.2.4.1.2 "><p id="p2139mcpsimp"><a name="p2139mcpsimp"></a><a name="p2139mcpsimp"></a>OT_ERR_VGS_NOT_READY</p>
</td>
<td class="cellrowborder" valign="top" width="37%" headers="mcps1.2.4.1.3 "><p id="p2141mcpsimp"><a name="p2141mcpsimp"></a><a name="p2141mcpsimp"></a>系统未初始化</p>
</td>
</tr>
<tr id="row2142mcpsimp"><td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.4.1.1 "><p id="p2144mcpsimp"><a name="p2144mcpsimp"></a><a name="p2144mcpsimp"></a>0xa02d8017</p>
</td>
<td class="cellrowborder" valign="top" width="43%" headers="mcps1.2.4.1.2 "><p id="p2146mcpsimp"><a name="p2146mcpsimp"></a><a name="p2146mcpsimp"></a>OT_ERR_VGS_BUF_FULL</p>
</td>
<td class="cellrowborder" valign="top" width="37%" headers="mcps1.2.4.1.3 "><p id="p2148mcpsimp"><a name="p2148mcpsimp"></a><a name="p2148mcpsimp"></a>没有剩余BUF</p>
</td>
</tr>
</tbody>
</table>

【注意事项】

宏定义OT\_ERR\_VGS\_BUF\_FULL未使用，保留。

